2014-04-21 95 views
2

我是一個新的程序員,我有這個代碼的問題。特別分割Java

public static String getString() throws IOException { 

    String content = null; 
    File folder = new File("C:\\Soluzioni.txt"); 
    content = FileUtils.readFileToString(folder) + "\n"; 
    String remainingString = content.substring(content.indexOf("["), 
      content.lastIndexOf("]") + 1); 
    System.out.println(remainingString); // Output 1. 
    return remainingString; 

} 

當我用這個方法

public static String[] arg() throws IOException { 
    String[] strArray = getString().split("\\s+,0"); 
    System.out.println(Arrays.toString(strArray)); //Output 2. 
    return strArray; 
} 

我的問題是這樣的:

  • 首頁輸出:[-2,-8] [8,-4] [-3,2] [4,-1]
  • 第二輸出:[[-2,-8] [8,-4] [-3,2] [4,-1]]。現在

我想有相同的輸出(相同)。我該怎麼做?謝謝!

+0

有什麼不好?你可以添加Soluzioni.txt嗎? –

+0

當然,Soluzioni.txt是[-2,-8] [8,-4] [-3,2] [4,-1] – Lorenz

+0

''[]'是由Arrays.toString添加的。你沒有在你的數組中 –

回答

0

不要使用Arrays.toString和環比分別自行​​打印字符串數組的內容。

0

你得到不同的輸出的原因是因爲你打印2個不同的東西:

輸出1:

System.out.println(remainingString); 

輸出2:

System.out.println(Arrays.toString(strArray)); 

要打印2不同的對象。所以,你有兩個選擇:

1)完全避免這個問題。在不拆分的情況下打印字符串:

System.out.println(getString()); 

2)自己格式化。這實際上提出了2個子選項。

a)獲得像StringUtils這樣的第三方庫,其中包含一個join函數,以使您的生活更輕鬆。這可能是你想要做的,如果這是真實世界的代碼,你不能做選項1;不要重新發明輪子。

二)編寫代碼做加盟自己。這並不困難。你有一個字符串列表;你只需要遍歷它們並在除最後一個之外的每一個之後添加一個空格(或者刪除最後一個之後的空格)。我會留下寫這段代碼作爲練習,因爲這是你做功課時你會做的。

0

最簡單的解決辦法是將手動刪除的方括號。

String output = Arrays.toString(strArray); 
System.out.println(output.substring(1, output.length() -2);