[英]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.]", "");
您可以結合使用Scanner
和String#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.