黑马程序员技术交流社区

标题: 关于字符串转换为字符串数组的问题 [打印本页]

作者: 万坤    时间: 2014-4-22 15:35
标题: 关于字符串转换为字符串数组的问题
本帖最后由 万坤 于 2014-4-23 17:32 编辑

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

作者: 织语不如书    时间: 2014-4-22 15:48
汗……把第一个删掉不就行了
作者: 唐宋元明清    时间: 2014-4-22 16:00
本帖最后由 唐宋元明清 于 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)+"";  //取字符串里的单个字符,然后放入字符串数组中
            }

作者: Ricky_Nick    时间: 2014-4-22 16:31
如果只有单个字符,你不想用字符数组,而是一定要字符传串数组,可以这样:
        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]);
                }


        }




作者: Ricky_Nick    时间: 2014-4-22 16:35
唐宋元明清 发表于 2014-4-22 16:00
String str="abcdef";
            int len=str.length();
            char[] chs=new char[len];

他的意思是说,虽然只有一个字符,但是他不想用字符数组存,要用字符串数组存,呵呵。。。如果转换成字符数组,直接有toCharArray()方法,没必要循环。。。
作者: 万坤    时间: 2014-4-22 17:00
难道只能去掉,没有方法可以让这个空字符不产生吗?

作者: 左拉    时间: 2014-4-22 17:16
思路:字符串本来就是字符数组,如果想把字符数组变成字符串数组,把每一个字符变成字符串不就行了;

  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
本帖最后由 万坤 于 2014-4-22 17:57 编辑

看来是我想多了啊

作者: 唐宋元明清    时间: 2014-4-22 18:58
本帖最后由 唐宋元明清 于 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)+"";  //取字符串里的单个字符,然后放入字符串数组中
    }






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2