黑马程序员技术交流社区

标题: String的小问题 [打印本页]

作者: 、__WSD吴少东    时间: 2013-4-13 23:46
标题: String的小问题
本帖最后由 、__WSD吴少东 于 2013-4-14 09:24 编辑

public static void Method_Byte2()//字符串转化成字节数组
{
  String str = "banbcs";
  byte[] by = str.getBytes();
  for(int x=0; x<str.length();x++)//遍历输出
  {
   sop(by[x]);
  }

问题在这里,最后储存到byte[]中的是数值,怎样让其能够储存字符,
下面的时输出结果
J:\Java\day08>java StringDemo
98
97
110
98
99
115
作者: 李易烜    时间: 2013-4-13 23:53
  1. public static void Method_Byte2()//字符串转化成字节数组
  2. {
  3.   String str = "banbcs";
  4.   char[] ch = str.toCharArray();
  5. }
复制代码
这不就搞定了!
作者: 崔宝东    时间: 2013-4-13 23:55
存储字符,你可以传化成字符数组呀,代码如下,我不知道是不是我理解你的问题有错误。

        public static void Method_Byte2()//字符串转化成字节数组
        {
          String str = "banbcs";
          byte[] by = str.getBytes();
          char[] ch=  str.toCharArray();
          for(int x=0; x<str.length();x++)//遍历输出
          {
           System.out.print((by[x]+"、"));
          }
          System.out.println();
          for(int x=0; x<str.length();x++)//遍历输出
          {
           System.out.print((ch[x]+"、"));
          }

        }


作者: _王涛    时间: 2013-4-14 00:23
感觉转成char[]更好些:
                   String str = "banbcs";
                  //byte[] by = str.getBytes();
                  char[] ch=str.toCharArray();
                  for(int x=0; x<ch.length;x++)//遍历输出
                  {
                   sop(ch[x]);
                  }

作者: 万蕾    时间: 2013-4-14 00:47
getByte()方法获取的是字节数,就相当于将string类型拆分成字符,再将字符转换成字节数进行存储,如果使用(char)by[x]强转之后输出的就是一个个字符,这和“banbcs”一样了。如果只想以字符形式存储的话还是建议用楼上所说的toCharArray()或者getChars()方法。
作者: 、__WSD吴少东    时间: 2013-4-14 09:21
万蕾 发表于 2013-4-14 00:47
getByte()方法获取的是字节数,就相当于将string类型拆分成字符,再将字符转换成字节数进行存储,如果使用( ...

Soga。    我也只是,突然想到了,然后我想牵制转换,不知道在哪里转了。。谢谢你
作者: 、__WSD吴少东    时间: 2013-4-14 09:22
_王涛 发表于 2013-4-14 00:23
感觉转成char[]更好些:
                   String str = "banbcs";
                  //byte[] by = str.getBytes();

嗯,谢谢,
作者: 、__WSD吴少东    时间: 2013-4-14 09:22
崔宝东 发表于 2013-4-13 23:55
存储字符,你可以传化成字符数组呀,代码如下,我不知道是不是我理解你的问题有错误。

        public static voi ...

没事没事,谢谢你,嘿嘿
作者: 杨彬    时间: 2013-4-14 14:35
可以直接 用一个char类型的接受一下得到数字 输出的时候就直接转换了
                       String str = "banbcs";
                   byte[] by = str.getBytes();
                   for(int x=0; x<str.length();x++)//遍历输出
                   {
                           char a=(char) by[x];
                                    System.out.print(a);
                   }
作者: 、__WSD吴少东    时间: 2013-4-14 22:49
杨彬 发表于 2013-4-14 14:35
可以直接 用一个char类型的接受一下得到数字 输出的时候就直接转换了
                       String str = ...

soga  就是说,强制转换就行了是吧。:lol我太聪明了。一看就明白了  谢谢你啊
作者: 、__WSD吴少东    时间: 2013-4-14 22:50
李易烜 发表于 2013-4-13 23:53
这不就搞定了!

Soga//  谢谢你啊




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