2016-09-26 61 views
0

我有這樣的代碼,它允許用戶輸入一個字符串,其中由字符( - )和輸入的字符串分隔的兩部分將被拆分成兩個不同的部分,然後輸出屏幕上的兩個部分用逗號分隔。如何拆分具有空格的字符串

public class Test 
{ 
public static void main(String[] args) 
{ 
    java.util.Scanner scanner = new java.util.Scanner(System.in); 

    String part = ""; 

    System.out.println("Please enter the 2-part string to be split: "); 
    part = scanner.next(); 

    String[] parts = part.split("-"); 
    String part1 = parts[0]; 
    String part2 = parts[1]; 

    System.out.print("," + part1 + "," + part2); 

    scanner.close(); 
} 

} 

現在讓我們說用戶照耀處

AAA-222

帶來的將是

AAA,222

如果我想進入有空格的字符串,這樣

我熱愛你,我恨你

我如何拆分(我愛你)和(我恨你)? 我得到這個錯誤與上面的代碼。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 
    at tutorial.Test.main(test.java:17) 

PS。拆分部分應該包含空格。

+1

*當上面的代碼*:讀取錯誤有助於查找其原因時,出現錯誤。使用調試器也有幫助。同時閱讀Scanner的javadoc,尤其是它的next()方法。 –

+0

你會得到什麼錯誤? –

+0

我編輯了帖子。這個錯誤 「在線程中的異常」main「java.lang.ArrayIndexOutOfBoundsException:1 at tutorial.Test.main(test.java:17)」 –

回答

7

而不是使用

part = scanner.next(); 

https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next()

使用

part = scanner.nextLine(); 

https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine()

未來的,只讀取到令牌結束。 nextLine讀取直到用戶進入下一行(按回車鍵)

+0

謝謝,這正是我一直在尋找的。我會盡我所能接受答案。 –

+0

我可以問一下你的意思是「到令牌的結尾」嗎? –

+1

根據我提供的鏈接「一個完整的標記之前和之後是與分隔符模式相匹配的輸入」默認分隔符模式包含空格。所以任何單詞都由一個分隔符模式分隔。 – jkozlowski

相關問題