2017-04-26 31 views
-4

我有一個字符串數組,它看起來像這樣分割陣列(包括空格):在特定點

[Santa Clara, CA 95050 Xenia, OH 45385]

我怎麼可以拆分這個,所以我可以存儲

"Santa Clara" in city = array[0] 
"CA" in state = array[1] 
"95050" in zip = array[2] 
"Xenia" in city2 =array[3] 
"OH" in state2 = array[4] 
"45385" in zip2 = array[5] 
+2

你嘗試過這麼遠嗎? – lucasvw

+0

我已經嘗試了像String [] array = fileReader.nextLine()。split(「\\ s +」);但是這拋棄了其餘部分,因爲它將聖克拉拉這樣的兩個詞城分成兩個不同的索引我也嘗試使用逗號和空格作爲分隔符,但仍然沒有成功 – user7866132

+0

@ user7866132 downvoting,直到包含更多信息 –

回答

0

您的輸入不包含任何你可以分割的邏輯,所以IF你的字符串看起來都是這樣的格式,你可以按照這種方式:

  1. 獲取第一值,其是每個值之前的第一逗號(Santa Clara
  2. 從主字符串
  3. 與一個空間
  4. 拆分此除去此值用空代替所有的逗號和所有空間最後,空間
  5. 你會得到這樣的結果(CA, 95050, Xenia, OH, 45385
  6. 您可以創建一個列表來存儲這個值與第一個值

下面是一段代碼可以幫助你:

public static void main(String[] args) { 
    String str = "Santa Clara, CA 95050      Xenia, OH 45385"; 
    String s1 = str.split(",")[0]; 
    str = str.replace(s1, "").replaceAll(",", "").replaceAll("\\s+", " ").trim(); 
    List<String> list = new ArrayList<>(); 
    list.add(s1); 
    list.addAll(Arrays.asList(str.split("\\s"))); 
    System.out.println(list); 
} 

輸出

[Santa Clara, CA, 95050, Xenia, OH, 45385]