如何用逗号和空格取一个字符串并存储在数组变量中

时间:2012-12-01 22:57:24

标签: java android arrays

我有这段代码:

        tvData1 = (TextView)findViewById(R.id.tvData1);
    tvData2 = (TextView)findViewById(R.id.tvData2);
    tvData3 = (TextView)findViewById(R.id.tvData3);
    GetData data= new GetData();
    try {
        SharedPreferences getName = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        String name = getName.getString("name", "");
        String returned = data.getData(name); //Gets data from internet
        String[] dataSplit = returned.split(",");
        for(int i = 0; i < dataSplit.length; i++){
            String stringData1 = dataSplit[0];
            String stringData2 = dataSplit[1];
            String stringData3 = dataSplit[2];

            tvData1.setText(stringData1);
            tvData2.setText(stringData2);
            tvData3.setText(stringData3);
        }
好吧,从互联网上获取的字符串是这样的:

"1,2,3 4,5,6"

并且该空间在3到4之间的位置实际上显示在一个新行中,如:

1,2,3
4,5,6

但基本上我想要的结果是

stringData1 = 1
stringData2 = 2
stringData3 = 3
stringData4 = 4
etc...

而不是:

stringData1 = 1
stringData2 = 2
stringData3 = 3 4

这就是它现在正在做的事情。

另外一个无关紧要的问题我似乎是tvData2不会setText无论怎样,即使我做tvData2.setText(“Some Text”);

2 个答案:

答案 0 :(得分:1)

String的{​​{1}}方法采用正则表达式。所以你可能在表达式中有一个可以在逗号和换行符上分割的字符类。也许以下可行。 (编辑:刚刚测试过,它确实对我有用。

split()

另一种选择可能是使用空格的快捷方式,以分割所有空白字符:String[] dataSplit = returned.split("[,\n]"); 。 (请注意,您需要转义\s字符:

\

经过测试,这也适用于字符串String[] dataSplit = returned.split("[,\\s]");

答案 1 :(得分:1)

应该工作......

   returned.split("[,\\s]+");