感谢各位
意思是,我想读取一段字符串,但该字符串a是使用tab也就是(char)0x09作为字段分隔符,(char)0x1a作为结束符。
该字符串比如是 String a="123"+(char)0x09+"4567"+(char)0x1a; 这样。
我想将里面数据使用while循环来读取(while的条件是读到(char)0x1a 结束符便终止读取)读出来分别存入b,c里面,成为String b="123" 和String c="4567"
因为a里面不确定有多少数据需要读出来的数据,也就是说可能不单单有b,c还有d,e,f,....这些来存数据。
请问应该怎样做啊
意思是,我想读取一段字符串,但该字符串a是使用tab也就是(char)0x09作为字段分隔符,(char)0x1a作为结束符。
该字符串比如是 String a="123"+(char)0x09+"4567"+(char)0x1a; 这样。
我想将里面数据使用while循环来读取(while的条件是读到(char)0x1a 结束符便终止读取)读出来分别存入b,c里面,成为String b="123" 和String c="4567"
因为a里面不确定有多少数据需要读出来的数据,也就是说可能不单单有b,c还有d,e,f,....这些来存数据。
请问应该怎样做啊
for (int i = 0; i < data.length; i++) {
System.out.println(data[i]);
}
但,程序提示java.lang.NoSuchMethodError错误
是怎么回事啊
数据很多呢?比如,String a = "123" + (char) 0x09 + "4567" )+"123" + (char) 0x09 )+"123" + (char) 0x09 )+"123" + (char) 0x09 + (char) (0x1a
这样会出错吗?
String a = "123" + (char) 0x09 + "4567" + (char) (0x1a);int i = 0;
while((char)0x1a != a.charAt(i)){
//这部分你可以写你的程序!!不过比较多!
.....
i++;
}
1.4 才有 String.split 因为 1.4 引入了 RE 正则表达式 , 并在 String 提供支持.
while((char)0x1a != a.charAt(i)){
i++;
}
a = a.substring(0,i);
StringTokenizer st = new StringTokenizer(a, String.valueOf((char)0x09));
List lst = new ArrayList();
for (i = 0; i < st.countTokens() ; i++) {
lst.add(String.valueOf(st.nextElement()));
}
好像输不出来,各位大哥帮帮小弟
while ((char) 0x1a != a.charAt(i)) {
i++;
}
a = a.substring(0, i); StringTokenizer st = new StringTokenizer(a,
String.valueOf((char) 0x09));
List lst = new ArrayList();
while (st.hasMoreElements()) {
lst.add(String.valueOf(st.nextElement()));
}
用 for (i = 0; i < lst.size(); i++) {
System.out.println(lst.get(i));
}
可以打出来
问题解决
比如应该输出5个就可以了,但输出了6个,第六个是多余的,这是怎么回事呢?(使用的是wangw1319(于风) 写的那个最终方法)
只是System.out.println()语句默认输出完后回车
不信你可以打出lst的大小
即System.out.println(lst.size());
public class Datas {
public static void main(String args[]){
String a = "123"+ (char)0x09+"456"+(char)0x09+"789";
String [] data = a.split(String.valueOf((char)0x09));
for(int i=0;i<data.length ;i++){
System.out.println(data[i]);
}
}
}