字符串反转问题总结
2017-09-01 19:03
337 查看
题目:写一个函数,将字符串反转,反转方式如下:“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); } }
相关文章推荐
- 优先级反转问题总结(二)
- 【Python初级】由判定回文数想到的,关于深浅复制,以及字符串反转的问题
- 字符串数组初始化相关问题总结
- 关于字符串类型相关的问题总结
- 关于字符串反转和数组反转的问题
- python面试题总结(一)字符串反转,写取指定数函数
- 反转字符串应该注意的问题
- ASP.NET MVC 给ViewBag赋值Html格式字符串的显示问题总结
- 字符串常见问题总结(二)
- 字符串的一些问题总结
- 【Java基础】总结java将字符串反转的7个方法
- HDOJ-1106 分解字符串、转化及排序问题总结[sscanf()函数+strtok()函数+atoi()函数]
- 字符串反转方法总结
- Python中的反转字符串问题
- c和python解决各种字符串反转问题的不同思路
- 字符串数值转换问题总结
- 字符串反转问题
- 关于字符串检索类问题的总结
- 字符串反转方法总结
- java后台以json字符串的形式,将数据返回给$.ajax的问题总结