如何将包含单词后跟数字的字符串解析为字符串后跟int

时间:2015-01-28 06:00:01

标签: java string parsing int

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

4 个答案:

答案 0 :(得分:0)

你可以这样做:

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

答案 1 :(得分:0)

您可以通过多种方式提取数字。拆分字符串或使用标记生成器来创建令牌,如:

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

您正在通过从系统输入中读取一个数字来执行子字符串,您可以自动执行此操作,但这将是乏味的。

答案 2 :(得分:0)

如果String包含空格,则使用空格作为分隔符拆分它是一个选项

String []splittedString=inputString.split(" ");//Splitting on basis of space

或者,您可以使用 正则表达式

public static void findWordFollowedByInt()
{
      String inputString="Hello 1 2";
      Pattern p=Pattern.compile("\\w+");
      Matcher matcher=p.matcher(hello);
      while(matcher.find())
     {
       System.out.println(matcher.group());
     }
}

输出

Hello
1
2

答案 3 :(得分:0)

像其他人所说的那样沿着空间分开。然后使用类似Apache commons Lang的东西,它有numberutils,可以检查字符串是否是数字。如果是,则可以执行Double.parseDouble(str)之类的操作。