0

文字列「-1 2」があるとしましょう。これらのintを取得できる「逆string.format」はありますか

Integer first = new Integer();
Integer second = new Integer();
String.grab("%d %d", first, second);
print(first + " " second); // prints "-1 2"
4

4 に答える 4

3

http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

宿題以外で使われているのを実際に見たことはありませんが。

于 2012-11-06T04:19:49.830 に答える
2

String 内のints は常に同じようにフォーマットされますか? もしそうなら、なぜ split() を使わないのですか?

String input = "-1 21"
String[] stringArray = input.split(" ");

次に、配列内の各要素を出力します。

String printedString = "";
for (int i = 0; i < stringArray.length; i++) {
    printedString += stringArray[i] + " ";
{

System.out.println(printedString);

ニーズに合わせて最適化します。

于 2012-11-06T04:28:32.700 に答える
1

入力をスペースで分割し、各文字列で Integer.parseInt を呼び出すことができます。

String input = "-1 2 -4 6 8";
String[] numberStringArray = input.split(" ");

for (String s : numberStringArray) {
    int n = Integer.parseInt(s);
    System.out.println("n = " + n);
}

:これはゼロエラーチェックを行います

于 2012-11-06T04:27:27.787 に答える
0

使用するInteger.parseInt()

数字以外をすべて空白に置き換えます。残りの文字列には数字のみが含まれます。

Integer.parseInt(s.replaceAll("[\\D]", ""))

これにより、数字の間の非数字も削除されるため、 に"x1x1x"なり11ます。

文字列が一連の数字 (少なくとも 1 つ) で構成され、文字の後に続く可能性があることを確認する必要がある場合は、次のようにします。

s.matches("[\\d]+[A-Za-z]?")

stackoverflow でこの質問を参照してください - get-int-from-string-also-containing-letters-in-java

于 2012-11-06T04:22:40.323 に答える