0

Stringキーボードから「5 4 34」のように入力したいです。スペース間の数値をエクスポートするにはどうすればよいですか? また、それらを配列にエクスポートしてint[]、画面に出力したいと考えています。

4

5 に答える 5

5

を使用してtoString.split("\\s")を分割し、各要素で使用して数値を として取得できます。StringString[]Integer.parseInt()int

Scannerまたは、とそのnextInt()メソッドを使用できます

他の人が でそれを行う方法をすでに示しているので、から直接 をsplit()使用してそれを行う方法の例を次に示します(キーボードから読み取ると言うので、もちろん、任意のものを使用できます。または aをビルドします):ScannerSystem.inReadableStringScanner

コード:

Scanner inputScanner = new Scanner(System.in);
Scanner scanner = new Scanner(inputScanner.nextLine());
List<Integer> list = new ArrayList<Integer>();
while (scanner.hasNextInt()) {
    list.add(scanner.nextInt());
}
Integer[] arr = list.toArray(new Integer[0]);

または、最後の行の代わりにint[]an ではなく anが必要な場合は、次を使用します。Integer[]

int[] arr = new int[list.size()];
int i = 0;
for (Integer x : list) { 
    arr[i++] = x;
}

配列を印刷するには、次の結果を印刷するだけですArrays.toString()

System.out.println(Arrays.toString(arr));
于 2012-04-30T17:36:49.177 に答える
2

例外ハンドラーを追加すると、調子が良くなります。

String values = "5 4 34";
String [] tokens = values.split("\\s+");
List<Integer> numbers = new ArrayList<Integer>();
for (String number : tokens) {
    numbers.add(Integer.valueOf(number);
}

またはこのように:

String values = "5 4 34";
String [] tokens = values.split("\\s+");
int [] numbers = new int[tokens.length];
for (int i = 0; i < tokens.length; ++i) {
    numbers[i] = Integer.valueOf(tokens[i]);
}
于 2012-04-30T17:36:26.607 に答える
1
    String[] stringArray = "5 4 34".split( " " );
    int[] intArray = new int[ stringArray.length ];

    for ( int i = 0 ; i < stringArray.length ; i++ )
    {
        intArray[ i ] = Integer.parseInt( stringArray[ i ] );
    }
于 2012-04-30T17:35:30.770 に答える
1
String string = "5 4 34";
String[] components = string.split(" "); // [5, 4, 34]
于 2012-04-30T17:36:04.573 に答える
0

定型文があまりない場合:

List <Integer> numbers = new ArrayList <Integer> ();
for (String number : "5 4 34";.split ("\\s+")) {
    int v = Integer.parseInt (number);
    System.out.println (v);
    numbers.add (v);
}

またはスキャナを使用して:

Scanner scanner = new Scanner ("5 4 34");
List <Integer> list = new ArrayList <Integer> ();
while (scanner.hasNextInt()) {
    int v = scanner.nextInt ();
    list.add (v);
    System.out.println (v);
}
于 2012-05-01T10:22:48.833 に答える