假设我有一个字符串“-1 2” 有没有“反向string.format”,我可以抓住那些像
这样的整数Integer first = new Integer();
Integer second = new Integer();
String.grab("%d %d", first, second);
print(first + " " second); // prints "-1 2"
答案 0 :(得分:3)
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
虽然我从来没有真正看到它在家庭作业之外使用过。
答案 1 :(得分:2)
字符串中的int
是否总是以相同的方式格式化?如果是这样,为什么不使用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);
根据您的需求进行优化。
答案 2 :(得分: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);
}
注意 :这会进行ZERO错误检查
答案 3 :(得分:0)
使用Integer.parseInt()
将所有非数字替换为空白:其余字符串仅包含数字。
Integer.parseInt(s.replaceAll("[\\D]", ""))
这也会删除数字之间的非数字,因此"x1x1x"
变为11
。
如果您需要确认该字符串是由一系列数字(至少一个)可能跟随一个字母组成的,那么请使用:
s.matches("[\\d]+[A-Za-z]?")
请参阅stackoverflow中的此问题 - get-int-from-string-also-containing-letters-in-java