字符串反转问题总结
来源:互联网 发布:sleep water 知乎 编辑:程序博客网 时间:2024/06/09 18:21
题目:写一个函数,将字符串反转,反转方式如下:“I am a student”反转成“student a am I,
总结了通过递归,非递归反转字符串代码,并做出两种不同的反转单词情况的代码,因为比较简单,直接上代码,看注释即可:
public class ReverseString { /** * * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Scanner in = new Scanner(System.in); String s = in.nextLine(); if(s.contains(" ")){ //判断是否有空格 System.out.println("单词反转"); s=gamel(s); }else{ s=game(s); } System.out.println(s);// StringBuffer sb=new StringBuffer();// String[] ses=s.split(" "); //对单词进行反转,先反转整个字符串,在反转单词// for(String s1:ses){// s1=game(s1);sb.append(s1).append(" ");// }// System.out.println(sb.toString().substring(0, s.length())); }// private static String game(String s) { //递归算法(对字符串反转)// if(s==null||s.length()<2){// return s;// }else{// return game(s.substring(1))+s.charAt(0);// }// } private static String game(String s) { //非递归算法(对字符串反转) char[] cs=s.toCharArray(); for(int i=0,j=cs.length-1;i<j;i++,j--){ char q=cs[j]; cs[j]=cs[i]; cs[i]=q; } return new String(cs); } private static String gamel(String s) { //对单词进行反转,直接对单词进行反转 String[] aStrings=s.split(" "); StringBuilder sb=new StringBuilder(); for(int i=aStrings.length-1;i>=0;i--){ sb.append(aStrings[i]).append(" "); } return sb.substring(0, sb.length()-1); }}
阅读全文
0 0
- 字符串反转问题总结
- java字符串反转总结
- 字符串反转方法总结
- 字符串反转方法总结
- 字符串反转系列问题
- 字符串反转问题
- 字符串反转系列问题
- 字符串反转问题
- 字符串反转问题
- c++ 字符串反转问题
- day4_字符串反转问题
- 字符串反转问题
- java字符串反转方法总结
- 多个字符串反转问题
- C#字符串的反转问题
- 【字符串反转总结】Java中七种方法实现
- 【字符串反转总结】Java中七种方法实现
- 面试问题之 按单词反转字符串
- maven使用实战
- SpringMVC登陆设计流程
- 蘑菇阵---动态规划
- 浅谈Redis事务机制
- 机器学习-学习笔记 学习总结归纳(第十二周)
- 字符串反转问题总结
- rir_generator在matlab中无法执行的问题
- zookeeper zkclient API小案例
- Codeforces Round #430 (Div. 2) 签到题
- C
- 论《人品导论》及蒟蒻的自知之明
- java实现冒泡排序 并优化
- 数值计算和SVM讲解(中)
- C语言的动态库和静态库