2017-08-14 66 views
1

我在使用扫描器和分隔符找到正确的方法来获取city1,city2和没有“km”的距离时遇到问题。我需要以粗体显示文字。
字符串(示例):Java扫描器多个/多个分隔符条件

city1,country; city2,country; 公里

我Delimitar到目前为止,因为我真的不知道:

scanner.useDelimiter(";"); 

我也使用string.split( “”)没有成功尝试。

我应该首先将它分为三部分:“;”并为每个部分做一个新的分界符?还是有更简单的方法?

在此先感谢

(编辑解释差异另一篇文章: 我用正则表达式试了一下,也有没有运气我需要拆分对不同人物的多个位置的字符串我不会问。如果我能够与另一篇文章来解决这个问题一个问题)

+0

的可能的复制[?我如何使用Java中扫描仪的分隔符(https://stackoverflow.com/questions/28766377/如何使用分隔符在java中的扫描仪) – tima

+0

@tima,没有不是真的 –

回答

0

您可以使用ScannerString#split组合:

String source = "city1, country; city2, country; 145 km"; 
Scanner scanner = new Scanner(source); 
scanner.useDelimiter(";"); 

while (scanner.hasNext()) { 
    // trim() removes leading and trailing whitespace 
    String line = scanner.next().trim(); 
    // split the line on either ',' or a space 
    String[] split = line.split(",|\\s"); 
    // print the first word 
    System.out.println(split[0]); 
} 
0

您可以String.split()

String data = "city1, country; city2, country; 145 km"; 
String city1Val = data.split(";")[0].split(",")[0]; 
String city1Con = data.split(";")[0].split(",")[1]; 
String city2Val = data.split(";")[1].split(",")[0]; 
String city2Con = data.split(";")[1].split(",")[1]; 
String distance = data.split(";")[2]; 

注试试:如果你想距离数,尝试如下,

distance = distance.replaceAll("[^\\d.]", ""); 
+0

谢谢你的回答。另一个答案更适合我。对于距离,我已经使用了一个子字符串:distance.substring(0,distance.length() - 3)。 –