文字列「-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"
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
宿題以外で使われているのを実際に見たことはありませんが。
String 内のint
s は常に同じようにフォーマットされますか? もしそうなら、なぜ 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);
ニーズに合わせて最適化します。
入力をスペースで分割し、各文字列で 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);
}
注:これはゼロエラーチェックを行います
使用する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