-2
import java.util.Scanner;

public class test1{
    public static void main(String[] args) {

       java.io.File test2 = new java.io.File("test3.txt");

       try
       {
           Scanner input = new Scanner(test2);
           while (input.hasNext()){
              String num = input.nextLine();
              System.out.println(num);
           }
       }  catch (Exception e){
        System.out.println("could not find file");
       }
    }
}  

文字列をintに変換する方法を見つけようとしていました。0000100001000010000001100000のような文字列を入力していました

4

7 に答える 7

2

Scannerクラスには、int、doubleなどの別のタイプに変換する機能があります

整数に変換する場合

Scanner input = new Scanner(test2);
 while(input.hasNext())
 {
  int num = input.nextInt();
  System.out.println(num);
 } 

ダブルに変換する場合

 Scanner input = new Scanner(test2);
     while(input.hasNext())
     {
      double num = input.nextDouble();
      System.out.println(num);
     } 
于 2012-12-13T05:26:00.993 に答える
1

を調べてみてくださいInteger.parseInt()

ドキュメントはここにあります-パラメータとしてyourを渡すだけStringで、表現が返されますint

あなたの場合、あなたはそれをこのように使いたいでしょう:

String num = input.nextLine();
int yourValue = Integer.parseInt(num);

解析はdouble同様の方法を使用します-Double.parseDouble()トリックを行う必要があります。


または、ファイルからの読み込みのためだけにこの変換を使用することを計画している場合は、input.nextInt();代わりにを使用するのinput.nextLine();が適している場合があります。

于 2012-12-13T04:54:07.393 に答える
1

を見てみましょうInteger.parseInt()

String num = input.nextLine();
int numInt = Integer.parseInt(num, 2); 
System.out.println(numInt);

これが2進数を意味する場合は2、2番目のパラメーターとして使用する必要があります

0000100001000010000001100000

于 2012-12-13T04:54:15.287 に答える
1

すべてに制限があります。あなたnumがである場合0000100001000010000001100000、それをに変換することはできませんint。変換するdouble or floatか、減らす必要があります。String変換しようとすると、int必要 に応じてInteger.parseInt(num)スローされます。これを行うに は、プリミティブデータ型の制限を参照してください。java.lang.NumberFormatExceptiondoubleDouble.parseDouble(num)

于 2012-12-13T05:12:39.217 に答える
0

特定の場合に使用したいのは

Integer.parseInt(num);

num変換する文字列はです。あなたもダブルに変換するように頼んだことを考えると、あなたはそれをで変換する必要があります

Double.parseDouble(num);

唯一の問題は、intのみをテストし、ユーザーが10進数を入力すると、例外がスローされることです。

于 2012-12-13T04:55:36.617 に答える
0

これを試して

Scanner input = new Scanner(test2);
while (input.hasNext())
{
    String num = input.nextLine();
    try
    {
        long l = Long.parse(num);
        System.out.println(l);
    }
    catch(Exception ex)
    {
        System.out.println("Input string is not a number");
    }
}

入力が2進数で、10進数で表示したい場合は、次のように使用できます。

long l = Long.parse(num, 2);
于 2012-12-13T04:57:17.710 に答える
0

有効な文字列をdoubleに変換する場合は、次の方法を使用します。

double value=Double.parseDouble("1000.25");
于 2012-12-13T04:57:31.673 に答える