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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张雪磊 中级黑马   /  2012-7-17 22:08  /  1657 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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 个错误

4 个回复

倒序浏览
copyValueOf()是String类中的一个静态方法,调用的时候加上String就好了。静态方法调用属于类,非静态方法调用属于对象,不能拿过来直接用。
char[] arr=s.toCharArray();

31.                reverse(arr);

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

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
你可以在这段代码前加上import static java.lang.String.*;
导入String类中的所有静态方法
回复 使用道具 举报
找问题的逻辑:
1、你不带对象的直接使用  copyValueOf(arr),像这样的只能引用本类所拥有的,所有可以省略对象。
2、而本类却没有 copyValueOf(arr);这个方法,你引用的不是空气了?
3、你是不是看String的源码了?String源码好像不带对象的用
4、改正:①你在前面加上String. copyValueOf(arr);
          ②自己写一个 copyValueOf(arr); 方法撒,
回复 使用道具 举报
其实错误不是很难找:
StringTest.java:32: 错误: 找不到符号
                return copyValueOf(arr);
                       ^
  符号:   方法 copyValueOf(char[])
  位置: 类 StringTest

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

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


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