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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 万坤 中级黑马   /  2014-4-22 15:35  /  1074 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 万坤 于 2014-4-23 17:32 编辑

我想把字符串转换为字符串数组,如 String “abcdef”,转换为字符串数组  { “a”, “b”, “c”, “d”, “e”, “f”,}。用toCharArray()方法得到是字符数组,而用split("")来做,得到是{ “”,“a”, “b”, “c”, “d”, “e”, “f”,} ,第一个是空,
请问有没有什么办法可以使不产生空元素,而直接产生正确的字符串数组。

8 个回复

倒序浏览
汗……把第一个删掉不就行了
回复 使用道具 举报
本帖最后由 唐宋元明清 于 2014-4-22 18:55 编辑

                String str="abcdef";
            int len=str.length();
            String[] strs=new String[len];
            for(int i=0;i<len;i++){
                    strs=str.charAt(i)+"";  //取字符串里的单个字符,然后放入字符串数组中
            }
回复 使用道具 举报
如果只有单个字符,你不想用字符数组,而是一定要字符传串数组,可以这样:
        public static void main(String[] args)
       {
                String str="abcdefgh";
                char[] ch=str.toCharArray();
                String[] strA=new String[ch.length];
                for(int i=0;i<ch.length;i++)
                {
                        strA[i]=Character.toString(ch[i]);
                        System.out.println("String["+i+"]="+strA[i]);
                }


        }



回复 使用道具 举报
唐宋元明清 发表于 2014-4-22 16:00
String str="abcdef";
            int len=str.length();
            char[] chs=new char[len];

他的意思是说,虽然只有一个字符,但是他不想用字符数组存,要用字符串数组存,呵呵。。。如果转换成字符数组,直接有toCharArray()方法,没必要循环。。。
回复 使用道具 举报
难道只能去掉,没有方法可以让这个空字符不产生吗?
回复 使用道具 举报
左拉 中级黑马 2014-4-22 17:16:08
7#
思路:字符串本来就是字符数组,如果想把字符数组变成字符串数组,把每一个字符变成字符串不就行了;

  1. public class Test{
  2.     public static void main(String[] args){
  3.        String str="abcdefg";
  4.        //先转换成字符串数组
  5.        char[] cs=str.toCharArray();
  6.        //声明一个新的字符串数组,长度与字符数组相同
  7.       String s=new String[cs.length];
  8.        //把每一个字符变成字符串
  9.        for(int i=0;x<s.length;i++){
  10.            s[i]=Character.toString(cs[i]);
  11.        }
  12.      }

  13. }
复制代码
回复 使用道具 举报
万坤 中级黑马 2014-4-22 17:27:44
8#
本帖最后由 万坤 于 2014-4-22 17:57 编辑

看来是我想多了啊
回复 使用道具 举报
本帖最后由 唐宋元明清 于 2014-4-22 18:59 编辑
Ricky_Nick 发表于 2014-4-22 16:35
他的意思是说,虽然只有一个字符,但是他不想用字符数组存,要用字符串数组存,呵呵。。。如果转换成字符 ...

经你一说我才看明白。。声明成字符串数组就行了吧。

     String str="abcdef";
     int len=str.length();
     String[] strs=new String[len];
     for(int i=0;i<len;i++){
          strs=str.charAt(i)+"";  //取字符串里的单个字符,然后放入字符串数组中
    }

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马