"123 456"把这个字符串改成"321 654"java编程题

如题所述

public class $ {

    public static void main(String[] args) {
        String str = "123 456";

        String[] arr = str.split(" ");

        String result = "";
        for (int i = 0; i < arr.length; i++) {

            // 第一种方法,利用StringBuffer的反转方法
            // StringBuffer buf = new StringBuffer(arr[i]);
            // result += buf.reverse();

            // 第二种方法,手动写
            for (int j = arr[i].length() - 1; j >= 0; j--) {
                result += arr[i].substring(j, j + 1);
            }

            result += " ";
        }
        System.out.println(result);
    }
}追问

第二种不对啊!!!

追答

你是不是把这行也注释了?

result += " ";

两种方法,都打印

321 654追问

没有啊。。我打出来的,321。。乱码。

能讲下第二种的意思吗?,非常感谢!!

追答

字符串遍历,从后往前

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-27
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
String str = "123 456";
String[] strings = str.split(" ");
for(int i = 0; i < strings.length; i++){
StringBuilder tmpStr = new StringBuilder();
tmpStr.append(strings[i]).reverse();
sb.append(tmpStr.toString());
if(i != strings.length - 1){
sb.append(" ");
}
}
System.out.println(sb.toString());
}

第2个回答  2015-10-27
String str = "123 456";
String[] strs = str.split(" ");
StringBuffer sb = new StringBuffer();
for (String s : strs) {
sb.append(reverse(s)).append(" ");
}
System.out.println(sb.toString());

public static String reverse(String s) {
char[] chars = s.toCharArray();
int i;
s = "";
for (i = chars.length - 1; i >= 0; i--)
s += chars[i];
return s;
}追问

您好能不用翻转,打出来吗?

追答

这里没有用到反转,反转是自己定义的一个函数。

相似回答