Java 如何将一个由单词后跟数字组成的字符串解析为后跟int的字符串

Java 如何将一个由单词后跟数字组成的字符串解析为后跟int的字符串,java,string,parsing,int,Java,String,Parsing,Int,假设用户将“hello 0 1”输入到字符串中。如何将此字符串拆分为一个表示“hello”的字符串,后跟两个独立的整数0和1?我已尝试使用带有参数(0,userInput.nextInt())的substring方法,但这不起作用。您可以通过以下方式实现: String teststring = "hello 0 1"; String[] splitstr = teststring.split(" "); String firstString = splitstr[0]; int firstNo

假设用户将“hello 0 1”输入到字符串中。如何将此字符串拆分为一个表示“hello”的字符串,后跟两个独立的整数0和1?我已尝试使用带有参数(0,userInput.nextInt())的substring方法,但这不起作用。

您可以通过以下方式实现:

String teststring = "hello 0 1";
String[] splitstr = teststring.split(" ");
String firstString = splitstr[0];
int firstNo = Integer.valueOf(splitstr[1]);
int secondNo = Integer.valueOf(splitstr[2]);

有多种方法可以提取数字。拆分字符串或使用标记器创建标记,如:

String str = "Hello 10 11";
StringTokenizer tokenizer = new StringTokenizer(str);
String token;
while (tokenizer.hasMoreTokens()) {
    token = tokenizer.nextToken();
    if (token.matches("\\d+" )) {//if its a number
        System.out.println("Number is " + token);
    }
}

通过从系统输入中读取一个数字来执行子字符串,这个数字可以自动执行,但会很繁琐。

如果字符串包含空格,则可以使用空格作为分隔符来拆分它

String []splittedString=inputString.split(" ");//Splitting on basis of space
或者,您可以使用正则表达式

输出:

Hello
1
2

正如其他人所说,沿着空间分割。然后使用ApacheCommonsLang之类的工具,它有numberutils,可以检查字符串是否是数字。如果是,那么可以执行类似Double.parseDouble(str)的操作

在空格处拆分并解析结果如何?您的代码不会从字符串中读取整数。它从标准输入中读取一个整数,并使用该整数作为参数之一。不幸的是,我认为你还没有意识到计算机实际上是相当愚蠢的。他们会完全按照你告诉他们的去做,不管这是不是你的意思。你不能用任何老掉牙的模糊方式把东西拼凑起来,然后期望编译器能理解你的意图。是的,我意识到它仍然以字符的形式读取数字,但不幸的是,我被难住了(工作到很晚,所以如果我提供了关于我试图做什么的糟糕信息,我向你道歉),但现在我终于明白我该怎么做了!
Hello
1
2