0

假设我有一个字符串 "-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"
4

4 回答 4

3

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

虽然我从未真正见过它在家庭作业之外使用。

于 2012-11-06T04:19:49.830 回答
2

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);

优化您的需求。

于 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.

如果您需要确认字符串由可能跟在字母后面的一系列数字(至少一个)组成,请使用以下命令:

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

在stackoverflow中参考这个问题-get -int-from-string-also-containing-letters-in-java

于 2012-11-06T04:22:40.323 回答