黑马程序员技术交流社区

标题: 这个代码错误我怎么找不到呀 [打印本页]

作者: 小洋人最happy    时间: 2012-11-26 13:01
标题: 这个代码错误我怎么找不到呀
本帖最后由 小洋人最happy 于 2012-11-26 16:17 编辑

/*
模拟一个trim方法,去除字符串两端的空格。
*/

class StringTestDemo1
{
        public static void sop(String str)
        {
                System.out.println(str);
        }
        
        public static void Mytrim(String str)
        {
                int start = 0,end = str.length()-1;

               
                 while (start<=end && str.charAt(start)==' ')
                {
                        start++;
                }
                while (start<=end && str.charAt(end) == ' ')
                {
                        end--;
                }

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

        }

        public static void main(String[] args)
        {
               
                String s = "   ab  cd    ";

                sop("("+s+")");

                s = Mytrim(s);

                sop("("+s+")");
        }
}


E:\java\Java1111\day13>javac StringTestDemo1.java
StringTestDemo1.java:26: 错误: 对于结果类型为空的方法, 无法返回值
                return str.substring(start,end+1);
                                    ^
StringTestDemo1.java:37: 错误: 不兼容的类型
                s = Mytrim(s);
                          ^
  需要: String
  找到:    void
2 个错误





作者: 赵红萍    时间: 2012-11-26 13:40
你仔细看你这个函数的声明:
public static void Mytrim(String str)返回值是void类型的,但是你却给它返回了:return str.substring(start,end+1);而且你在main方法中调用这个函数时,还给它赋了一个值s = Mytrim(s);当然会提示错误,把你这个函数的声明中的void改成String就可以了,出现错误了不用着急,java的错误提示是很清楚的,认真阅读一下就知道了...
作者: 小洋人最happy    时间: 2012-11-26 16:17
赵红萍 发表于 2012-11-26 13:40
你仔细看你这个函数的声明:
public static void Mytrim(String str)返回值是void类型的,但是你却给它返回了 ...

非常感谢




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