Java写一个字符串排序程序,对一个字符串中的数值进行从小到大的排序,例如字符串为"20 78 9 -7 88 36 29",排序后的字符串为 “-7 9 20 29 36 78 88”
时间: 2024-12-17 08:53:40 浏览: 39
在Java中,你可以通过创建一个自定义的Comparator来实现这个功能。首先,你需要将字符串分割成数字数组,然后对数组进行排序,最后合并成一个新的字符串。以下是一个简单的示例:
```java
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class StringSort {
public static void main(String[] args) {
String input = "20 78 9 -7 88 36 29";
String sortedString = sortNumerical(input);
System.out.println(sortedString); // 输出: "-7 9 20 29 36 78 88"
}
private static String sortNumerical(String str) {
// 分割字符串并转换为整数数组
StringTokenizer tokenizer = new StringTokenizer(str, " ");
int[] numbers = new int[tokenizer.countTokens()];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = Integer.parseInt(tokenizer.nextToken());
}
// 对数组进行排序
Arrays.sort(numbers, Comparator.naturalOrder());
// 合并排序后的数字回原字符串
StringBuilder sortedBuilder = new StringBuilder();
for (int num : numbers) {
sortedBuilder.append(num).append(" ");
}
return sortedBuilder.toString().trim(); // 移除末尾空格
}
}
```
在这个程序中,我们使用了`StringTokenizer`来分割输入字符串,并用`Arrays.sort`函数配合`Comparator.naturalOrder()`进行自然顺序的排序。最后,我们将排序后的数组元素连接成新的字符串。
阅读全文
相关推荐



















