黑马程序员技术交流社区
标题:
反转问题
[打印本页]
作者:
\(^o^)/
时间:
2014-4-18 13:06
标题:
反转问题
本帖最后由 \(^o^)/ 于 2014-4-18 18:28 编辑
class StringTest
{
//练习二:将字符串反转;
/*
思路:
1.将字符串变成数组。
2.对数组反转。
3.将数组变成字符串。
*/
public static void main(String[] args)
{
String s=" ab cd ";
sop("("+reverseString(s,2,3)+")");
}
public static String reverseString(String s,int start,int end)
{
char[] chs=s.toCharArray();//将字符串变成数组。
reverse(chs,start,end);//反转数组。
return new String(chs);//将数组变成字符串。
}
public static String reverseString(String s)//这条语句在这边是什么意思,貌似程序中没用到啊,但是去掉又会编译失败?
{
return "";
}
public static void reverse(char[] arr,int x,int y)
{
for(int start=x,end=y;start<end;start++,end--)
{
swap(arr,start,end);
}
}
private static void swap(char[] arr,int x,int y)
{
char temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
public static void sop(Object obj)
{
System.out.println(obj);
}
复制代码
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