我有这段代码:
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”);
答案 0 :(得分:1)
String
的{{1}}方法采用正则表达式。所以你可能在表达式中有一个可以在逗号和换行符上分割的字符类。也许以下可行。 (编辑:刚刚测试过,它确实对我有用。)
split()
另一种选择可能是使用空格的快捷方式,以分割所有空白字符:String[] dataSplit = returned.split("[,\n]");
。 (请注意,您需要转义\s
字符:
\
经过测试,这也适用于字符串String[] dataSplit = returned.split("[,\\s]");
。
答案 1 :(得分:1)
应该工作......
returned.split("[,\\s]+");