A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//在不使用正则表达式的方法下。实现了多空格(可以是单空格)切割的方法。将字符串转换为字符数组
  1. public static String[] strToArray(String str) {
  2.                 //设置一个变量记录空格出现的索引值
  3.                 int index = 0;
  4.                 //设置一个数组,因为长度不确定,将它设置为str的长度
  5.                 String []arr_str = new String[str.length()];
  6.                 //arr_str的长度不确定,为了将不需要的null去掉,所以设置了arr_str2数组
  7.                 String []arr_str2 =null;
  8.                 //为了将数据存储到arr_str中,定义一个变量
  9.                 int p = 0;
  10.                 while(((index = str.indexOf(" ")))!=-1){  //当索引值不是空的时候循环(字符串中有空格)
  11.                         if(index == 0){
  12.                                 /*
  13.                                  * 如果得到的字串中第一个字符还是空格,就接着更新
  14.                                         空20空空29空8 index = 0,就从1开始取后边的所有的数。
  15.                                         得到20空空29空8 index = 3!=0.
  16.                                         将20取出来放到一个数组里去,并且将去除20后的字符串更新
  17.                                        
  18.                                  */
  19.                                 str = str.substring(1, str.length());
  20.                         }else{
  21.                                 arr_str[p++] = str.substring(0,index);
  22.                                 str = str.substring(index+1, str.length());
  23.                         }
  24.                                
  25.                 }
  26.                 //到这里肯定还有一个数,直接添加到数组中去
  27.                 //if (str!=null) {
  28.                         arr_str[p] = str;
  29.                 //}
  30.                
  31.                 int mark = 0;  //得到了一个含有多个null的数组。
  32.                 for (int i = 0; i < arr_str.length; i++) {
  33.                         //将第一次出现null元素的位置记录,这个位置就是数组所需要的实际长度
  34.                         //跳出循环。得到最小长度
  35.                         if(arr_str[i] == null){
  36.                                 mark = i;
  37.                                 break;
  38.                         }
  39.                 }
  40.                 arr_str2 = new String[mark];  //长度确定了,就可以直接new对象了
  41.                 for(int i = 0;i<mark;i++){
  42.                         arr_str2[i] = arr_str[i];
  43.                 }
  44.                
  45.                 //String arr_str[] = str.split(" ");
  46.                 return arr_str2;
  47.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

1 个回复

倒序浏览
给楼主顶顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马