编写一个字符串排序程序,对一个字符串中的数值进行从小到大的排序,例如字符串为"20 78 9 -7 88 36 29",排序后的字符串为 "-7 9 20 29 36 78 88"。要求使用包装类对数值类型的字符串转换为整形进行排序。
时间: 2024-12-16 14:22:04 浏览: 75
要编写这样一个字符串排序程序,可以按照以下步骤进行:
1. 定义一个函数,接收一个包含数值和空格的字符串作为输入。
2. 使用`split()`方法将字符串分割成字符数组,这个数组里的每个元素都是一个单独的数值字符串。
3. 创建一个ArrayList或List,用于存储整型数值。由于需要处理负数和正数,我们可以使用Integer的实例数组(它会自动处理包装类),或者直接创建一个新的列表`List<Integer>`。
4. 遍历字符数组,对于每个元素,尝试将其转换为整数。如果能成功转换,就添加到列表中;如果无法转换(如遇到非数字字符),则忽略。
5. 对列表进行排序,这里可以使用Collections.sort()方法,传入自定义的Comparator实现升序排序。
6. 将排序后的整数列表转换回字符串,并用逗号连接各个元素(去除最后一个元素后面的逗号)。
以下是一个简单的Java示例实现:
```java
import java.util.*;
public class StringSort {
public static void main(String[] args) {
String input = "20 78 9 -7 88 36 29";
System.out.println(sortNumericString(input));
}
public static String sortNumericString(String str) {
// Step 2: Split the string by space
String[] numbers = str.split(" ");
// Step 3 & 4: Create a list of integers, ignore non-numeric values
List<Integer> numList = new ArrayList<>();
for (String num : numbers) {
try {
int value = Integer.parseInt(num);
numList.add(value);
} catch (NumberFormatException e) {
// Ignore non-numeric strings
}
}
// Step 5: Sort the list in ascending order
Collections.sort(numList);
// Step 6: Convert sorted list back to a string
StringBuilder sb = new StringBuilder();
for (int i = 0; i < numList.size(); i++) {
if (i != 0) {
sb.append(", ");
}
sb.append(numList.get(i));
}
return sb.toString().trim(); // Remove trailing comma
}
}
```
当你运行此程序,输入"20 78 9 -7 88 36 29",你会得到输出"-7, 9, 20, 29, 36, 78, 88"。
阅读全文
相关推荐


















