黑马程序员技术交流社区

标题: 反转问题 [打印本页]

作者: \(^o^)/    时间: 2014-4-18 13:06
标题: 反转问题
本帖最后由 \(^o^)/ 于 2014-4-18 18:28 编辑
  1. class StringTest
  2. {

  3. //练习二:将字符串反转;
  4. /*
  5. 思路:
  6. 1.将字符串变成数组。
  7. 2.对数组反转。
  8. 3.将数组变成字符串。

  9. */
  10. public static void main(String[] args)
  11. {
  12. String s=" ab cd ";
  13. sop("("+reverseString(s,2,3)+")");
  14. }
  15. public static String reverseString(String s,int start,int end)
  16. {
  17. char[] chs=s.toCharArray();//将字符串变成数组。
  18. reverse(chs,start,end);//反转数组。
  19. return new String(chs);//将数组变成字符串。
  20. }
  21. public static String reverseString(String s)//这条语句在这边是什么意思,貌似程序中没用到啊,但是去掉又会编译失败?
  22. {
  23. return "";
  24. }
  25. public static void reverse(char[] arr,int x,int y)
  26. {
  27. for(int start=x,end=y;start<end;start++,end--)
  28. {
  29. swap(arr,start,end);
  30. }
  31. }
  32. private static void swap(char[] arr,int x,int y)
  33. {
  34. char temp=arr[x];
  35. arr[x]=arr[y];
  36. arr[y]=temp;
  37. }
  38. public static void sop(Object obj)
  39. {
  40. System.out.println(obj);
  41. }
复制代码
public static String reverseString(String s){
return "";
}
这条语句在这边是什么意思,貌似程序中没用到啊,但是去掉又会编译失败?


作者: sanguodouble1    时间: 2014-4-18 13:09
本帖最后由 sanguodouble1 于 2014-4-18 13:11 编辑

因为你的方法需要返回一个字符串
所以return “”就是为了满足返回值服务的其实就是返回一个空字符串。
这个在程序中还是经常会用到的,比如你的代码逻辑中,肯定是会返回一个字符串的,比如在if语句中返回,但编译器不知道啊,所以你只好写这么一行return"";给编译器看

作者: 香菜病病患    时间: 2014-4-18 13:24
public static String reverseString(String s){
return "";
}

你这个方法和你上面写到的public static String reverseString(String s, int start, int end) 两个重载了。
你在程序中并没有调用到 reverseString(String s)这个方法。
我看了下你的程序,运行了一下。根据我自己的猜测你这个 reverseString(String s, int start, int end),应该是用来指定某字符串中要反转的位置的吧。那么这个reverseString(String s)重载方法,我估计就是用于将整个字符串反转的。
但是你在方法内只写了一个return "";   没有具体的逻辑。我估计你这个方法还没写完整。之所以写上return "";  ,一般是在写某个方法的时候,这个方法需要返回值。但你还没写完具体的逻辑,也没写返回值,那么如果是用eclipse这些工具来写代码的话,他就会提醒你这个方法有错,因为你还没写完所以不管也没所谓。但如果觉得看着很烦的话可以写个返回值先骗过编译器。




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