簡體   English   中英

Java掃描程序多個/多個定界符條件

[英]Java scanner multiple/several delimiter conditions

我在使用掃描儀和定界符找到僅獲取city1,city 2和距離而沒有“ km”的正確方法時遇到了問題。 我需要將文本加粗。
字符串(示例):

city1 ,國家/地區; city2 ,國家/地區; 145公里

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

scanner.useDelimiter(";");

我也嘗試使用string.split(“”)失敗。

我是否應該首先在“;”上將其分為三部分? 並為每個零件設置新的分隔符嗎? 還是有更簡單的方法?

提前致謝

(編輯以解釋與另一篇文章的區別:我用正則表達式嘗試過,也沒有運氣。我需要將字符串拆分成多個不同字符的位置。我不會問我是否可以用另一個來解決它發布)。

您可以嘗試使用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.]", "");

您可以結合使用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]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM