javalist集合中string中数字排序
时间: 2024-02-17 11:01:25 浏览: 63
你可以使用Java 8的Stream API来对一个`List<String>`中的数字进行排序。具体代码如下:
```
List<String> list = new ArrayList<>();
// 添加一些字符串到列表中
list.add("abc1");
list.add("abc10");
list.add("abc2");
// 对数字进行排序
List<String> sortedList = list.stream()
.sorted(Comparator.comparing(s -> Integer.parseInt(s.replaceAll("\\D+", ""))))
.collect(Collectors.toList());
// 输出排序后的列表
System.out.println(sortedList); // 输出: [abc1, abc2, abc10]
```
在上述代码中,`Comparator.comparing()`方法接受一个Function作为参数,并且该Function会将每个字符串转换为一个整数。`Integer.parseInt()`方法会将字符串中的数字部分转换为整数。
`replaceAll("\\D+", "")`会将字符串中的非数字字符(`\D`表示非数字)替换为空字符串,这样就只剩下数字部分了。例如,"abc1"会被转换成"1"。
相关问题
javalist集合中string排序
您可以使用`Collections`类中的`sort`方法来对`List<String>`进行排序,示例如下:
```java
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "orange");
Collections.sort(list);
System.out.println(list);
}
}
```
输出结果为:`[apple, banana, orange]`,即按字母顺序排序后的结果。如果需要按照字符串长度排序,可以使用`Comparator`,示例如下:
```java
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "orange");
Collections.sort(list, Comparator.comparingInt(String::length));
System.out.println(list);
}
}
```
输出结果为:`[apple, orange, banana]`,即按字符串长度排序后的结果。
javalist集合中string 字母排序
对于字母排序,我们可以使用`Collections`类中的`sort`方法,示例如下:
```java
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "orange");
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
System.out.println(list);
}
}
```
输出结果为:`[apple, banana, orange]`,即按字母顺序排序后的结果,不区分大小写。
如果需要区分大小写进行排序,可以不传入`String.CASE_INSENSITIVE_ORDER`参数,示例如下:
```java
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "Banana", "Orange");
Collections.sort(list);
System.out.println(list);
}
}
```
输出结果为:`[Banana, Orange, apple]`,即按字母顺序排序后的结果,区分大小写。
阅读全文