我试图从包含int的字符串中获取输入。因此,当用户输入命令“getrange(1,12)”时,我需要将inital命令作为字符串读取,并将其中的两个数字作为整数读取。我以为我可以做一些Splits(),但我认为这可能会变得混乱。另外,Split()将它们保持为字符串。
我的最终目标是写一个这样的IF语句:
if("getrange")
{
while(1 <= 12)
{
output.println(MyArray[1])
1++
}
}
任何想法? 我知道这很粗糙,如果我需要澄清,请告诉我。谢谢
答案 0 :(得分:2)
Scanner s = new Scanner(input);
s.findInLine("getRange\((\\d+),(\\d+)\)");
MatchResult result = s.match();
//You should do some error checking here (are there enough matches ...)
int StartRange == Integer.parseInt(result.group(0));
int EndRange == Integer.parseInt(result.group(1));
你可以从那里拿走它:)
答案 1 :(得分:2)
String input = "getrange(1,12)";
String[] parts = input.split("\\(");
System.out.println("Command: " + parts[0]);
String[] argsParts = parts[1].substring(0, parts[1].indexOf(")")).split(",");
int arg1 = Integer.parseInt(argsParts[0].trim());
int arg2 = Integer.parseInt(argsParts[1].trim());
System.out.println("Args: " + arg1 + ", " + arg2);
输出:
Command: getrange Args: 1, 12
答案 2 :(得分:1)
使用正则表达式获取数字,然后对两个部分执行Integer.parseInt()。另一个不太理想的选择是组合子串和拆分以删除不需要的字符。