假设我有一个字符串 "-1 2" 是否有一个 "reverse 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 中的 s 是否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);
优化您的需求。
你可以用空格分割你的输入,然后在每个字符串上调用 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
.
如果您需要确认字符串由可能跟在字母后面的一系列数字(至少一个)组成,请使用以下命令:
s.matches("[\\d]+[A-Za-z]?")
在stackoverflow中参考这个问题-get -int-from-string-also-containing-letters-in-java