黑马程序员技术交流社区
标题:
分享一个将字符串(含有数据的)转换成字符数组的方法。
[打印本页]
作者:
Super_Class
时间:
2013-5-19 07:59
标题:
分享一个将字符串(含有数据的)转换成字符数组的方法。
//在不使用正则表达式的方法下。实现了多空格(可以是单空格)切割的方法。将字符串转换为字符数组
public static String[] strToArray(String str) {
//设置一个变量记录空格出现的索引值
int index = 0;
//设置一个数组,因为长度不确定,将它设置为str的长度
String []arr_str = new String[str.length()];
//arr_str的长度不确定,为了将不需要的null去掉,所以设置了arr_str2数组
String []arr_str2 =null;
//为了将数据存储到arr_str中,定义一个变量
int p = 0;
while(((index = str.indexOf(" ")))!=-1){ //当索引值不是空的时候循环(字符串中有空格)
if(index == 0){
/*
* 如果得到的字串中第一个字符还是空格,就接着更新
空20空空29空8 index = 0,就从1开始取后边的所有的数。
得到20空空29空8 index = 3!=0.
将20取出来放到一个数组里去,并且将去除20后的字符串更新
*/
str = str.substring(1, str.length());
}else{
arr_str[p++] = str.substring(0,index);
str = str.substring(index+1, str.length());
}
}
//到这里肯定还有一个数,直接添加到数组中去
//if (str!=null) {
arr_str[p] = str;
//}
int mark = 0; //得到了一个含有多个null的数组。
for (int i = 0; i < arr_str.length; i++) {
//将第一次出现null元素的位置记录,这个位置就是数组所需要的实际长度
//跳出循环。得到最小长度
if(arr_str[i] == null){
mark = i;
break;
}
}
arr_str2 = new String[mark]; //长度确定了,就可以直接new对象了
for(int i = 0;i<mark;i++){
arr_str2[i] = arr_str[i];
}
//String arr_str[] = str.split(" ");
return arr_str2;
}
复制代码
作者:
神之梦
时间:
2013-5-19 11:09
给楼主顶顶
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2