San*_*eev 6 java string reverse
如何在java is object orientated language不使用任何预定义函数的情况下打印字符串的反向reverse()?
Adr*_*ter 57
这是最简单的解决方案:
System.out.print("egaugnal detatneiro tcejbo si avaj");
Run Code Online (Sandbox Code Playgroud)
Ita*_*man 48
您可以递归或迭代(循环)执行此操作.
迭代:
static String reverseMe(String s) {
StringBuilder sb = new StringBuilder();
for(int i = s.length() - 1; i >= 0; --i)
sb.append(s.charAt(i));
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)
递归:
static String reverseMe(String s) {
if(s.length() == 0)
return "";
return s.charAt(s.length() - 1) + reverseMe(s.substring(0,s.length()-1));
}
Run Code Online (Sandbox Code Playgroud)
那么,打印本身会建议预定义的功能......
但是,据推测,您可以获得字符并反向手动连接(即向后循环).当然,你可以说连接是一个预定义的函数......所以也许char数组本身.但又一次...... 为什么?
源是否允许包含"egaugnal detatneiro tcejbo si avaj";-p
另外 - 请注意,如果你考虑unicode组合字符,代理对等,字符串反转实际上非常复杂.你应该注意到大多数字符串反转机制只会处理更常见的情况,但可能会遇到i18n.
小智 7
String reverse(String s) {
int legnth = s.length();
char[] arrayCh = s.toCharArray();
for(int i=0; i< length/2; i++) {
char ch = s.charAt(i);
arrayCh[i] = arrayCh[legnth-1-i];
arrayCh[legnth-1-i] = ch;
}
return new String(arrayCh);
}
Run Code Online (Sandbox Code Playgroud)
从字符串的结尾到beg的简单遍历怎么样:
void printRev(String str) {
for(int i=str.length()-1;i>=0;i--)
System.out.print(str.charAt(i));
}
Run Code Online (Sandbox Code Playgroud)