黑马程序员技术交流社区

标题: copyValueOf的问题 [打印本页]

作者: 张雪磊    时间: 2012-7-17 22:08
标题: copyValueOf的问题
  1. class StringTest
  2. {
  3.         public static void sop(String s)
  4.         {
  5.                 System.out.println(s);
  6.         }

  7.         public static String myTrim(String str)
  8.         {
  9.                 int start=0,end=str.length()-1;
  10.                 while(start<=end && str.charAt(start)==' ')
  11.                         start++;
  12.                 while(start<=end&&str.charAt(end)==' ')
  13.                         end--;

  14.                 return str.substring(start,end+1);
  15.         }

  16.         public static void main(String[] args)
  17.         {
  18.                 String s="   ab cd    ";
  19.                 sop("("+s+")");
  20.                 //s=myTrim(s);
  21.                 //sop("("+s+")");
  22.                 sop("("+reverseS(s)+")");
  23.         }

  24.         public static String reverseS(String s)
  25.         {
  26.                 char[] arr=s.toCharArray();
  27.                 reverse(arr);
  28.                 return copyValueOf(arr);//提示
  29.         }

  30.         private static void reverse(char[] arr)
  31.         {
  32.                 for (int start=0,end=arr.length-1;start<end ;start++,end-- )
  33.                 {
  34.                         swap(arr,start,end);
  35.                 }
  36.         }

  37.         private static void swap(char[] arr,int x,int y)
  38.         {
  39.                 char temp=arr[x];
  40.                 arr[x]=arr[y];
  41.                 arr[y]=temp;
  42.         }
  43. }
复制代码
提示出错的地方具体提示如下,请问除了什么错?

StringTest.java:32: 错误: 找不到符号
                return copyValueOf(arr);
                       ^
  符号:   方法 copyValueOf(char[])
  位置: 类 StringTest
1 个错误
作者: 周坤    时间: 2012-7-17 22:35
copyValueOf()是String类中的一个静态方法,调用的时候加上String就好了。静态方法调用属于类,非静态方法调用属于对象,不能拿过来直接用。
char[] arr=s.toCharArray();

31.                reverse(arr);

32.                return copyValueOf(arr);//提示改成String.copyValueOf(arr);

作者: 乞文超    时间: 2012-7-18 01:20
你可以在这段代码前加上import static java.lang.String.*;
导入String类中的所有静态方法
作者: 张世威    时间: 2012-7-18 01:58
找问题的逻辑:
1、你不带对象的直接使用  copyValueOf(arr),像这样的只能引用本类所拥有的,所有可以省略对象。
2、而本类却没有 copyValueOf(arr);这个方法,你引用的不是空气了?
3、你是不是看String的源码了?String源码好像不带对象的用
4、改正:①你在前面加上String. copyValueOf(arr);
          ②自己写一个 copyValueOf(arr); 方法撒,
作者: 高欢欢    时间: 2012-7-18 06:45
其实错误不是很难找:
StringTest.java:32: 错误: 找不到符号
                return copyValueOf(arr);
                       ^
  符号:   方法 copyValueOf(char[])
  位置: 类 StringTest

说明调用方法的时候错了!

copyValueOf()方法调用的是哪的?这个你自己要清楚,而且这个方法是静态的。
你现在要调用一个静态方法,你就这样平白的去调用显然是不行的。
所以在改为String.copyValueOf(arr);







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