在java中从字符串获取int

在java中从字符串获取int,java,regex,string,Java,Regex,String,假设我有一个字符串“-12” 有没有一个“反向字符串.格式”可以让我抓取像这样的整数 Integer first = new Integer(); Integer second = new Integer(); String.grab("%d %d", first, second); print(first + " " second); // prints "-1 2" 虽然我从来没有见过它在家庭作业之外被使用。 虽然我从来没有见过在家庭作业之外使用它。使用Integer.parseInt(

假设我有一个字符串“-12” 有没有一个“反向字符串.格式”可以让我抓取像这样的整数

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

虽然我从来没有见过它在家庭作业之外被使用。

虽然我从来没有见过在家庭作业之外使用它。

使用
Integer.parseInt()

将所有非数字替换为空白:剩余字符串仅包含数字

Integer.parseInt(s.replaceAll("[\\D]", ""))
这也将删除数字之间的非数字,因此
“x1x1x”
变为
11

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

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

使用
Integer.parseInt()

将所有非数字替换为空白:剩余字符串仅包含数字

Integer.parseInt(s.replaceAll("[\\D]", ""))
这也将删除数字之间的非数字,因此
“x1x1x”
变为
11

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

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

请参阅stackoverflow中的此问题-

您可以按空格分割输入,然后对每个字符串调用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:

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

注意:这进行零错误检查

字符串中的
int
s的格式是否始终相同?如果是,为什么不使用split()

然后打印出数组中的每个元素

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

System.out.println(printedString);
String printedString=”“;
对于(int i=0;i

根据您的需要进行优化。

字符串中的
int
s的格式是否总是相同的?如果是,为什么不使用split()

然后打印出数组中的每个元素

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

System.out.println(printedString);
String printedString=”“;
对于(int i=0;i


根据您的需要进行优化。

您是否需要支持所有空格?或者您的输入是否仅用一个空格分隔?如果数字由一个
空格分隔
,您可以使用带空格的扫描仪作为分隔符,并使用
Integer.parseInt()
转换提取的数字(字符串)若要
integer
您需要支持所有空格吗?或者您的输入仅用一个空格分隔。如果数字由
空格分隔,您可以使用带空格的扫描仪作为分隔符,并使用
integer.parseInt()
转换提取的数字(字符串)对于
integer
这不会得到单独的数字。您希望
213
返回3个
integer
对象,而不是数字
213
,因此我们正在处理散布空白“噪声”(即不可靠的输入)的数字,或空格分隔的数字?…我的蜘蛛感觉告诉我是后者…只是因为它更符合逻辑。@durron597 u可以使用
Integer.parseInt()
Integer.parseInt()
只返回1
int
。他有一个超过1
int
的文本字符串,这不会得到单独的数字。你希望
2 1 3
返回3
Integer
对象,而不是数字
213
,因此我们正在处理散布空白“噪音”(即不可靠的输入)的数字,或空格分隔的数字?…我的蜘蛛感觉告诉我是后者…只是因为它更符合逻辑。@durron597 u可以使用
Integer.parseInt()
Integer.parseInt()
只返回1
int
。他有一个字符串,其中包含超过1的
int
+1,因为他从来没有在愤怒中使用过它…因为它(IMHO)基本上很糟糕。一个代码示例演示如何在这种情况下使用它将有助于回答这个问题。@Paul:他看起来像一个聪明的年轻人,只需要被推到正确的方向上。实际上我不建议使用
扫描仪
,但如果没有更多的信息,很难说最好的解决方案是什么。而且……因为扫描仪是为st学生们,让他们享受学习的宝贵经验吧!+1因为从未见过它被用于愤怒……因为它(IMHO)基本上很糟糕。一个代码示例演示如何在这种情况下使用它将有助于回答这个问题。@Paul:他看起来像一个聪明的年轻人,只需要被推到正确的方向上。实际上我不建议使用
扫描仪
,但如果没有更多的信息,很难说最好的解决方案是什么。而且……因为扫描仪是为st学生们,让他们享受宝贵的学习经验!我本想发布这样的内容,但我在等着看他是否有不止一种空格;)我本想发布这样的内容,但我在等着看他是否有不止一种空格;)