2015-04-06 39 views
0

我試圖讓用戶輸入一個字符串,它既可以包含空格,也可以不包含空格。所以,我使用NextLine();我試圖用這個字符串搜索一個文本文件,因此我使用next()來存儲每個字符串,它通過掃描儀,我試過使用NextLine(),但它會佔用整個行,我只需要逗號前面的單詞。 到目前爲止,這裏是我的代碼如何在next()中包含空格而不使用nextLine()in Java

System.out.print("Cool, now give me your Airport Name: "); 

String AirportName = kb.nextLine(); 
AirportName = AirportName + ","; 

while (myFile.hasNextLine()) { 
    ATA = myFile.next(); 
    city = myFile.next(); 

    country = myFile.next(); 
    myFile.nextLine(); 
    // System.out.println(city); 

    if (city.equalsIgnoreCase(AirportName)) { 
     result++; 
     System.out.println("The IATA code for "+AirportName.substring(0, AirportName.length()-1) + " is: " +ATA.substring(0, ATA.length()-1)); 
     break; 
    } 
} 

當用戶輸入不帶空格的字代碼工作,但是當他們輸入兩個詞,在條件不滿足。

該文本文件只包括一些機場,他們的國際航空運輸協會,城市和國家。下面是一個示例:

ADL, Adelaide, Australia 
IXE, Mangalore, India 
BOM, Mumbai, India 
PPP, Proserpine Queensland, Australia 
+0

不知道你的最簡單的方法去這件事。你能發佈一個你想要解析的文件的樣本,你想保留什麼? – ghostbust555

+0

我很確定我正在努力做到這一點,但我使用的是我認識的代碼,而且我仍然是初學者。 這是一個包含多行的文本文件,每行包含IATA代碼,城市和國家,如上所述。 Everyline是相同的,但不同的代碼,城市..等等。 我正在嘗試編寫一個提示用戶輸入機場名稱(城市)的軟件,編將搜索文檔並打印出IATA代碼。我已經完成了這個程序。 – user3319290

+0

PS I(種類)通過分割輸入字符串解決了我的問題,然後添加if(字符串包含空格),然後將第一部分分配給字符串 然後我在條件中使用該字符串以僅比較第一個字,他們都是獨一無二的,所以我幾乎只有一個結果。 這就是我解決問題的方法,我非常確定這不是最佳的解決方案,但是嘿它對我有效:D感謝您的時間。 – user3319290

回答

1

默認情況下,next()搜索第一個空格作爲分隔符。你可以改變這種行爲是這樣的:

Scanner s = new Scanner(input); 
s.useDelimiter("\\s*,\\s*"); 

由此,s.next()將匹配逗號分隔符爲你的輸入(零個或多個空格preceeded或後面)

+0

這正是我需要的,謝謝! – user3319290

0

退房的String#split方法。

下面是一個例子:

String test = "ADL, Adelaide, Australia\n" 
      + "IXE, Mangalore, India\n" 
      + "BOM, Mumbai, India\n" 
      + "PPP, Proserpine Queensland, Australia\n"; 

Scanner scan = new Scanner(test); 
String strings[] = null; 

while(scan.hasNextLine()) { 
    // ",\\s" matches one comma followed by one white space ", " 
    strings = scan.nextLine().split(",\\s"); 

    for(String tmp: strings) { 
     System.out.println(tmp); 
    } 
} 

輸出:

ADL 
Adelaide 
Australia 
IXE 
Mangalore 
India 
BOM 
Mumbai 
India 
PPP 
Proserpine Queensland 
Australia 
相關問題