2012-08-14 46 views
0
item1:100 

item2:50 

item3:200 

我想要存儲單獨的項目和價格,並將它們存儲在兩個不同的陣列:就像一個陣列,如何獲取字符串的特定部分?

item1 

item2 

item3 

,並在另一個陣列

100 

50 

200 
+0

你的問題很相似,http://stackoverflow.com/questions/7925726/split-string-in-java-for-delimiter,但使用的是:作爲分隔符。另外,關於字符串拆分在android上的另一個問題:http://stackoverflow.com/questions/3732790/android-split-string – 2012-08-14 07:33:18

+0

@Coral,我不會稱這第一個愚蠢的,因爲它不是真的如何拆分字符串,這更是爲什麼'^'在分割時不起作用。第二個比較接近。其實太近了。我將不得不在這一次進行近距離投票。 – paxdiablo 2012-08-14 07:44:28

+0

你的輸入字符串存儲在哪裏?這也是一個'String'對象還是來自一個文件? – sunil 2012-08-14 07:46:30

回答

2

你可以試試下面的代碼:

String DELIMITER = ":"; 

ArrayList<String> arrItems = new ArrayList<String>(); 
ArrayList<Integer> arrPrices = new ArrayList<Integer>(); 

然後,你可以分割字符串和ArrayList中相關的值存儲爲:

String[] strTemp = "item1:100".split(DELIMITER); 
arrItems.put(strTemp[0]); 
arrPirces.put(strTemp[1]); 
+0

嘿thanx哥們哇喔! – amg 2012-08-14 09:52:52

1

您可以使用split分離基於另一個字符串的字符串(實際上是一個正則表達式):

String str = "item1:100"; 
String[] words = str.split (":"); 

從那裏開始,將words[0]添加到一個數組並將words[1]添加到另一個數組中很簡單。

下面的完整程序顯示了它是如何做:

import java.util.ArrayList; 
class Test { 
    private static ArrayList<String> items = new ArrayList<String>(); 
    private static ArrayList<Integer> values = new ArrayList<Integer>(); 
    private static void addToArray (String str) { 
     String[] words = str.split(":"); 
     items.add(words[0]); 
     values.add(new Integer (words[1])); 
    } 
    public static void main(String[] args) { 
     addToArray ("item1:100"); 
     addToArray ("item2:50"); 
     addToArray ("item3:200"); 

     for (int i = 0; i < items.size(); i++) 
      System.out.println ("Item = " + items.get(i) + 
       ", value = " + values.get(i)); 
    } 
} 

輸出:

Item = item1, value = 100 
Item = item2, value = 50 
Item = item3, value = 200 

請記住我只是在做簡單的字符串分割這裏沒有錯誤處理代碼 - 你可能想要補充的是,如果您重視可靠的代碼,特別是如果有可能您的輸入數據可能無效(例如,"item4:hello"將生成java.lang.NumberFormatException)。

0

您可以使用split()字符串的方法。

 String[] temp = yourString.split(":"); 

試試這個。

1

您可以根據您的要求使用StringTokenizer類。

StringTokenizer st = new StringTokenizer(yourString, ":"); 
arrayOne[0] = st.nextToken(); 
arrayTwo[0] = st.nextToken(); 
相關問題