A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dyt给你的幸福 中级黑马   /  2015-12-16 16:29  /  2996 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

10黑马币
打印一个字符串,进行反序输出。如:i love you变成 i evol uoy  。

14 个回复

倒序浏览
  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 18:39
回复 使用道具 举报
你可以试试使用数组保存这个字符串;然后使用循环打印,打印的时候从最后一个元素输出
回复 使用道具 举报
本帖最后由 yyt199108 于 2015-12-16 18:34 编辑

用String的split方法按空格切割长字符串,保存到数组中,遍历数组,对每一个短字符串反转并用StringBuilder的append方法添加到字符串缓冲区。
回复 使用道具 举报
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); //最后将输出
        }

}


回复 使用道具 举报
思路: 1先用StringBuffer reverse进行反转
2.用split(“空格”)切割字符串得到三个单词的String【】;
3,对数组的元素进行反转
4,用 “空格”+把数组转换成字符串(if判断角标为0时不加“空格”)
回复 使用道具 举报
xiaoduo 中级黑马 2015-12-16 21:25:58
7#
  String str="I love you !";
         StringBuffer sb=new StringBuffer(str);
         sb=sb.reverse();//字符串的翻转
         System.out.println(sb.toString());//StringBuffer转化为String打印
回复 使用道具 举报
楼上最简单。。
回复 使用道具 举报
思路:
     1· 按照空格将字符串切割
     2·使用StringBuilder或者StringBuffer的reverse()方法
     3·将反转后的字符串拼接,输出
回复 使用道具 举报
建立Stringbulider对象调用append方法将字符串添加到Stringbulider当中,再用reverse将其翻转,在用toString方法将其转换成字符串。
回复 使用道具 举报
感谢分享~~~
回复 使用道具 举报
xiaoduo 发表于 2015-12-16 21:25
String str="I love you !";
         StringBuffer sb=new StringBuffer(str);
         sb=sb.reverse( ...

简约,很好
回复 使用道具 举报

题目都没有认真看,不是整个字符串的反转
回复 使用道具 举报
                 /*//最简单的方法
                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);*/
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马