使用java语言编写一个字符串排序程序,对一个字符串中的数值进行从小到大的排序,例如字符串为"20 7 8 9 -7 88 36 29",排序后的字符串为 "-7 9 20 2 9 36 78 88"。要求使用包装类对数值类型的字符串转换为整形进行排序。
时间: 2024-12-16 13:25:11 浏览: 16
在Java中,我们可以利用`StringTokenizer`将输入的字符串分割成数组,然后使用`Integer`的`parseInt()`方法将其转换为整数。接着,我们使用`Collections.sort()`方法配合自定义比较器,对整数数组进行排序。最后,再将排序后的整数转换回字符串并连接。
以下是一个简单的示例:
```java
import java.util.Arrays;
import java.util.Collections;
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";
// 分割字符串为字符串数组
StringTokenizer tokenizer = new StringTokenizer(input);
String[] stringArray = new String[tokenizer.countTokens()];
for (int i = 0; i < stringArray.length; i++) {
stringArray[i] = tokenizer.nextToken();
}
// 将字符串转换为整型数组,并使用包装类Integer
Integer[] intArray = Arrays.stream(stringArray)
.mapToInt(Integer::parseInt)
.toArray();
// 对整型数组进行排序
Arrays.sort(intArray, Comparator.naturalOrder());
// 再次转换回字符串并连接
StringBuilder sortedStrBuilder = new StringBuilder();
for (Integer num : intArray) {
sortedStrBuilder.append(num).append(" ");
}
// 移除末尾多余的空格
sortedStrBuilder.setLength(sortedStrBuilder.length() - 1);
System.out.println("排序后的字符串:" + sortedStrBuilder.toString());
}
}
```
阅读全文