2012-08-14 41 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(); 
相关问题