0
item1:100

item2:50

item3:200

我想存储单独的项目和价格并将它们存储在两个不同的数组中:就像在一个数组中,

item1

item2

item3

在另一个数组中

100

50

200
4

5 回答 5

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]);
于 2012-08-14T07:31:54.127 回答
1

您可以根据需要使用StringTokenizer类。

StringTokenizer st = new StringTokenizer(yourString, ":");
arrayOne[0] = st.nextToken();
arrayTwo[0] = st.nextToken(); 
于 2012-08-14T07:29:22.690 回答
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)。

于 2012-08-14T07:28:02.747 回答
0

Java 在字符串中提供了 split 函数。str.split(":")for "item:100" 返回一个带有元素的 String[] {"item1","100}。现在只需遍历拆分数组并构建两个部分的组合数组。

来源: http ://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#split(java.lang.String )

于 2012-08-14T07:33:44.493 回答
0

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

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

尝试这个。

于 2012-08-14T07:28:51.250 回答