例如,如果我有一个包含5,4,3,2,1的字符串,我该如何制作一个新字符串或如何打印出1,2,3,4,5?感谢。
答案 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)
答案 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