如何反转字符串中的数字?

时间:2012-09-28 02:31:27

标签: java string reverse

例如,如果我有一个包含5,4,3,2,1的字符串,我该如何制作一个新字符串或如何打印出1,2,3,4,5?感谢。

6 个答案:

答案 0 :(得分:1)

做类似的事情:

StringBuilder builder = new StringBuilder("3, 2, 1");

 System.out.println(builder.reverse());

答案 1 :(得分:0)

如果您可以使用内置方法,这是最短的解决方案:

String input = "12345";
String output = new StringBuilder(input).reverse().toString();

如果你需要实现自己的解决方案,这是一个使用char[]并迭代输入字符串的一半的有效答案:

String input = "12345";
char[] chars = input.toCharArray();
for (int i = 0, n = chars.length; i < n/2; i++) {
    char tmp = chars[i];
    chars[i] = chars[n-i-1];
    chars[n-i-1] = tmp;
}
String output = new String(chars);

无论哪种方式,输入都将颠倒过来:

System.out.println(output);
> 54321

答案 2 :(得分:0)

将String转换为Character数组。从characterarray的长度-1循环到0索引一次打印每个字符。

答案 3 :(得分:0)

请参阅this有关将逗号分隔的字符串解析为数组的问题。反转数组,然后看到有关将数组转换回逗号分隔字符串的相同问题。

另外,你可以使用this c#代码作为一个易于移植的例子。

答案 4 :(得分:0)

如果你只对转换String感兴趣,而不关心自然顺序,你可以做类似的事情

String word = "1, 2, 3, 4, 5";
word = word.replace(", ", "");

StringBuilder s = new StringBuilder();
for (int i = 0; i <= word.length() - 1; i++) {
    char c = word.charAt(word.length() - i - 1);
    if (s.length() > 0) {
        s.append(", ");
    }
    s.append(c);
}

哪个输出5, 4, 3, 2, 1

当然,如果你对保持数字的自然顺序感兴趣,它会变得有点复杂......

//String value = "1, 2, 3, 4, 5";
String value = "1, 5, 4, 3, 2";
System.out.println("Start with " + value);
String parts[] = value.split(", ");

// We need to convert the String values to ints
List<Integer> listOfValues = new ArrayList<Integer>(5);
for (String part : parts) {
    listOfValues.add(Integer.parseInt(part));
}
// Allow the API to sort them...
Collections.sort(listOfValues);

StringBuilder sb = new StringBuilder(value.length());
for (Integer part : listOfValues) {
    if (sb.length() > 0) {
        sb.append(", ");
    }
    sb.append(part);
}

System.out.println(sb);


System.out.println(s.toString());

哪个输出

Start with 1, 5, 4, 3, 2
1, 2, 3, 4, 5

答案 5 :(得分:0)

你可以这样做:

String values = "5, 4, 3, 2, 1";
values = values.replace(", ", " ,");
StringBuilder sb = new StringBuilder(values);
values = sb.reverse().toString();
System.out.println(values);

输出是:

1, 2, 3, 4, 5