2009-04-10 83 views

回答

6

只要格式保持簡單的樣子,我會使用

String s = "vt X, Y, Z"; 
String[] values = s.split("[ ,]+"); 
String x = values[1]; 
String y = values[2]; 
String z = values[3]; 

如果格式有更多的靈活性,你要考慮使用一個正則表達式(在Pattern類),或創建一個使用類似ANTLR

+0

它可以與Z一起工作嗎? Z之後沒有。 – William 2009-04-10 21:24:37

6

我可能會選擇一個正則表達式它解析器(假設X,Y和Z是ints):

Pattern p = Pattern.compile("vt ([0-9]+),\\s*([0-9]+),\\s*([0-9]+)"); 
Matcher m = p.match(line); 
if (!m.matches()) 
    throw new IllegalArgumentException("Invalid input: " + line); 
int x = Integer.parseInt(m.group(1)); 
int y = Integer.parseInt(m.group(2)); 
int z = Integer.parseInt(m.group(3)); 

與逗號分隔符上的簡單拆分相比,可以更好地處理無效輸入。

相關問題