从包含int的字符串中解析输入

时间:2012-01-31 20:24:36

标签: java

我试图从包含int的字符串中获取输入。因此,当用户输入命令“getrange(1,12)”时,我需要将inital命令作为字符串读取,并将其中的两个数字作为整数读取。我以为我可以做一些Splits(),但我认为这可能会变得混乱。另外,Split()将它们保持为字符串。

我的最终目标是写一个这样的IF语句:

if("getrange")
{

    while(1 <= 12)
    {
        output.println(MyArray[1])
        1++
    }
}

任何想法? 我知道这很粗糙,如果我需要澄清,请告诉我。谢谢

3 个答案:

答案 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()。另一个不太理想的选择是组合子串和拆分以删除不需要的字符。