黑马程序员技术交流社区
标题:
自己实现字符串翻转
[打印本页]
作者:
huhanghao
时间:
2015-3-18 23:59
标题:
自己实现字符串翻转
class Demo1234
{
public static void main(String[] args)
{
String s1 = " abc abc ";
String s2 = "abcdefgh";
String s = "";
String ss = "";
s = Converse(s2);
ss = Converse(s2,1,5);
sop(s);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
public static String Converse(String str)
{
char[] chs = str.toCharArray();
char[] chs1 = new char[chs.length];
for (int i = 0,j = chs.length - 1; i < chs.length ;i++,j-- )
{
chs1[i] = chs[j];
}
String s = new String(chs1);
return s;
}
public static String Converse(String str, int start ,int end)
{
char[] chs = str.toCharArray();
char[] chs1 = new char[chs.length];
int len = 0;
for (int i = start,j = end; i < end ;i++,j-- )
{
chs1[len] = chs[j];
len++;
}
String s1 = new String(chs1);
String s2 = substring(0,start);
String s3 = substring(end-1,chs.length);
String s = s1+s2+s3;
return s;
}
}
编译错误,找不到原因
作者:
殷俊
时间:
2015-3-19 00:53
虽然还没有弄明白你第二个Converse方法是什么怎么执行的?但是编译没通过就是你那里面的substring用法有误,应该是str.substring();,这样才对,你必须明确返回的是哪个字符串的子串;第一个Converse没错
作者:
殷俊
时间:
2015-3-19 16:02
那第二个converse的方法,有两种实现方式:1、先将整个字符串反转,然后再获取需要的部分字符串;2、先获取指定的部分字符串,然后再反转;你的第二个converse应该是先转换成字符串数组,在反转部分字符数组元素,个人感觉有点麻烦,还不如整个转成数组后,整个反转字符串数组,然后再根据传入值获取指定的反转字符串,而且这样的话,你就可以直接调用第一个converse,再写上获取部分的代码就可以了,个人感觉这样更好点
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2