黑马程序员技术交流社区

标题: 字符串反转问题 [打印本页]

作者: dyt给你的幸福    时间: 2015-12-16 16:29
标题: 字符串反转问题
打印一个字符串,进行反序输出。如:i love you变成 i evol uoy  。


作者: yyt199108    时间: 2015-12-16 16:30
  1. public class StrShow {
  2.         public static void main(String[] args) {
  3.                 String str=getStr("i love you");
  4.                 System.out.println(str);
  5.         }
  6.         //字符串反转方法
  7.         public static String getStr(String str){
  8.                 StringBuilder builder=new StringBuilder();
  9.                 String[] strs=str.split(" +");
  10.                 for(String s:strs){
  11.                         for(int i=s.length()-1;i>=0;i--){
  12.                                 builder.append(s.charAt(i));
  13.                         }
  14.                         builder.append(" ");
  15.                 }
  16.                 return builder.toString();
  17.         }
  18. }
复制代码

作者: 正阳门下    时间: 2015-12-16 17:06
你可以试试使用数组保存这个字符串;然后使用循环打印,打印的时候从最后一个元素输出
作者: yyt199108    时间: 2015-12-16 18:30
本帖最后由 yyt199108 于 2015-12-16 18:34 编辑

用String的split方法按空格切割长字符串,保存到数组中,遍历数组,对每一个短字符串反转并用StringBuilder的append方法添加到字符串缓冲区。
作者: zhauibuzhai    时间: 2015-12-16 20:26
package com.heima.lianxi;
//可能我这不是最好的思路  

public class Demo1_Reverse {

        /**
         * i love you变成 i evol uoy
         */
        public static void main(String[] args) {
String s=new String("i love you");


                //将S分割成三个字符串
                String[] string=s.split(" ");

                StringBuffer s1=new StringBuffer(string[0]).reverse();//s1= i  包装成StringBuffer  好用里面的反装方法,以下同理
                StringBuffer s2=new StringBuffer(string[1]).reverse();//s2=love
                StringBuffer s3=new StringBuffer(string[2]).reverse();//s3=you
                System.out.println(s1+" "+s2+" "+s3); //最后将输出
        }

}



作者: 队长别开枪是我    时间: 2015-12-16 21:19
思路: 1先用StringBuffer reverse进行反转
2.用split(“空格”)切割字符串得到三个单词的String【】;
3,对数组的元素进行反转
4,用 “空格”+把数组转换成字符串(if判断角标为0时不加“空格”)
作者: xiaoduo    时间: 2015-12-16 21:25
  String str="I love you !";
         StringBuffer sb=new StringBuffer(str);
         sb=sb.reverse();//字符串的翻转
         System.out.println(sb.toString());//StringBuffer转化为String打印
作者: wangyoucao    时间: 2015-12-17 21:32
楼上最简单。。
作者: VisionDo    时间: 2015-12-18 18:06
思路:
     1· 按照空格将字符串切割
     2·使用StringBuilder或者StringBuffer的reverse()方法
     3·将反转后的字符串拼接,输出
作者: lxg8136223    时间: 2015-12-18 19:42
建立Stringbulider对象调用append方法将字符串添加到Stringbulider当中,再用reverse将其翻转,在用toString方法将其转换成字符串。
作者: 499087476    时间: 2015-12-20 18:03
感谢分享~~~
作者: Manli123    时间: 2015-12-22 23:15
xiaoduo 发表于 2015-12-16 21:25
String str="I love you !";
         StringBuffer sb=new StringBuffer(str);
         sb=sb.reverse( ...

简约,很好
作者: dyt给你的幸福    时间: 2015-12-26 17:11
Manli123 发表于 2015-12-22 23:15
简约,很好

题目都没有认真看,不是整个字符串的反转
作者: 1191065242    时间: 2016-5-1 16:34
                 /*//最简单的方法
                String str = "i love you";
                StringBuilder sb = new StringBuilder(str);
                System.out.println(sb.reverse());*/
               
                /*//可以先转换成char[]数组进行装换
                String str = "i love you";
                char[] ch = str.toCharArray();
                for (int i = 0; i < ch.length / 2; i++) {
                        ch[i] = (char) (ch[i] + ch[ch.length - 1 - i]);
                        ch[ch.length - 1 -i] = (char) (ch[i] - ch[ch.length - 1 - i]);
                        ch[i] = (char) (ch[i] - ch[ch.length - 1 - i]);
                }
                StringBuilder sb2 = new StringBuilder();
                for (int i = 0; i < ch.length; i++) {
                        sb2.append(ch[i]);
                }
                System.out.println(sb2);*/





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2