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