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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梁清平 中级黑马   /  2012-5-11 19:52  /  2609 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问题一:
public class StringTest
{
        public static void main(String[] args)
        {
                String str = "  abcdefg  ";
                String str1 = "aBcdefg";
                char[] ch ={'a','d','f'};
                double d = 2.3;
               
                sop(valueOf(ch));//此句运行不通不知道是什么原因!!!!!!!!!!!!
       
        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
       
}
valueOf()的用法错在哪里了?或者说在这个程序中该怎么改啊?

8 个回复

正序浏览
杨威 发表于 2012-5-11 20:12
二楼说的不对吧,楼主是想打印出那串char数组内容,valueOf中参数不可以为char类型吗?
在String类中就有va ...

感谢大家。。。明白了。。:)
回复 使用道具 举报
sop(valueOf(ch));//此句运行不通不知道是什么原因!!!!!!!!!!!!
未指定调用者。
指定调用者哦。
回复 使用道具 举报
本帖最后由 It's_Zero 于 2012-5-11 22:56 编辑
  1. public class StringTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String str = "  abcdefg  ";
  6.                 String str1 = "aBcdefg";
  7.                 char[] ch ={'a','d','f'};
  8.                 double d = 2.3;
  9.                
  10.                 sop(String.valueOf(ch));//valueOf是String的一静态个方法 ,静态方法调用 有两种方式  1 对象 . 方法名  2  类名 . 方法名   
  11. /*
  12. public String(char value[]) {
  13. int size = value.length;
  14. this.offset = 0;
  15. this.count = size;
  16. this.value = Arrays.copyOf(value, size);
  17.     }

  18. 通过这个 String.valueOf (char)最后得到 字符数组
  19. */
  20.         }
  21.         public static void sop(Object obj)
  22.         {
  23.                 System.out.println(obj);
  24.         }
  25.         
  26. }
复制代码
回复 使用道具 举报
二楼说的不对吧,楼主是想打印出那串char数组内容,valueOf中参数不可以为char类型吗?
在String类中就有valueOf参数是char类型的,上个图
楼主如是想打印,可以再new它个String类对象,调用那方法才行,添加一条语句
public class StringTest
{
        public static void main(String[] args)
        {
                String str = "  abcdefg  ";
                String str1 = "aBcdefg";
                char[] ch ={'a','d','f'};
                double d = 2.3;
                String s = null;
                sop(s.valueOf(ch));//此句运行不通不知道是什么原因!!!!!!!!!!!!

        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }

}

360截图-16775140.jpg (57.43 KB, 下载次数: 38)

360截图-16775140.jpg
回复 使用道具 举报
方法valueOf()缺少调用者,可以将“sop(valueOf(ch));”改为“sop(str.valueOf(ch));”或者用类名直接调用改为:“sop(String.valueOf(ch));”。推荐第二种,因为这样可以省略定义str和str1那两行代码。
回复 使用道具 举报
传参数错误了!
  public static void main(String[] args)
        {
                String str = "  abcdefg  ";
                String str1 = "aBcdefg";
                char[] ch ={'a','d','f'};
                double d = 2.3;
               
                sop(valueOf(ch));//valueOf方法的参数类型不能使char[]

        
        }
回复 使用道具 举报
  public static void main(String[] args)
        {
                String str = "  abcdefg  ";
                String str1 = "aBcdefg";
                char[] ch ={'a','d','f'};
                double d = 2.3;
               
                sop(valueOf(ch));//valueOf方法的参数类型不能使char[]
        
        }
回复 使用道具 举报
没有调用者啊,你怎么能让方法独立运行呢
静态方法可以用类名调用
比如:String.valueOf()
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马