不使用任何预定义函数打印任何字符串的反转?

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)

  • 当人们没有正确提问时会发生这种情况. (8认同)
  • 我认为StackOverflow应该实现笑脸:) (2认同)

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)

  • 对于downvoters:请阅读指南:http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions:"不要贬低善意回答家庭作业问题的其他人,即使他们违反了这些准则." (17认同)
  • -1只是为这样一个明显的家庭作业分配发布复制和粘贴解决方案. (10认同)
  • @polygenelubricants看起来最同意这是一个明显的家庭作业问题,指南谈论非显而易见的问题. (2认同)
  • 对于家庭作业问题,最好包括一些解释,以便它不会变成Ctrl-C,Ctrl-V (2认同)

Mar*_*ell 8

那么,打印本身会建议预定义的功能......

但是,据推测,您可以获得字符并反向手动连接(即向后循环).当然,你可以说连接是一个预定义的函数......所以也许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)


cod*_*ict 6

从字符串的结尾到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)