2012-01-31 57 views
1

我想從包含整數的字符串獲取輸入。因此,當用戶輸入命令「getrange(1,12)」時,我需要將inital命令作爲字符串讀取,並將其中的兩個數字作爲整數。我想我可以做一些拆分(),但我認爲這可能會變得混亂。另外Split()將它們保持爲我想的字符串。從包含整數的字符串解析輸入

我的最終目標是編寫一個IF語句是這樣的:

if("getrange") 
{ 

    while(1 <= 12) 
    { 
     output.println(MyArray[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 
+0

+1。 – RanRag 2012-01-31 20:40:10

1

使用一個正則表達式來獲取數字,然後在這兩個塊上執行Integer.parseInt()。另一個不太理想的選項是做一個子串和拆分組合來刪除不需要的字符。

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

而且你可以把它從那裏:)