Java 需要判断8次一个字符串是否包含某些字符,并且如果包含 需要对一个List 进行赋值,可能用8次if 怎么简写
时间: 2024-03-05 19:48:03 浏览: 68
可以使用循环和正则表达式来简化代码,如下所示:
```java
String str = "hello world";
List<String> list = new ArrayList<>();
for (char c : new char[]{'a', 'e', 'i', 'o', 'u', 'H', 'W', 'D'}) {
if (str.matches(".*" + c + ".*")) {
list.add(String.valueOf(c));
}
}
System.out.println(list);
```
这里使用了循环遍历要判断的字符集合,然后使用正则表达式判断字符串是否包含该字符,如果包含则将该字符添加到 List 中。最后输出 List。这样就可以避免重复的 if 判断,代码更加简洁。
相关问题
Java中讲一个字符串数组赋值给一个List
可以使用Java中的Arrays类中的asList方法将字符串数组转换为List。以下是示例代码:
```java
String[] arr = {"apple", "banana", "orange"};
List<String> list = Arrays.asList(arr);
```
这将创建一个List<String>对象,其中包含字符串数组中的所有元素。注意,asList返回的列表是固定大小的,不能使用add和remove方法来更改它。如果需要更改列表,则需要使用其他类型的List实现,例如ArrayList。
java使用stream流将一个对象list的的某个属性赋值给一个字符串list
你可以使用Java 8引入的Stream API来实现这个需求。假设你有一个对象列表,每个对象都有一个属性,你想要将这些属性的值赋值给一个字符串列表,可以按照以下步骤进行操作:
1. 首先,确保你的对象类有一个 getter 方法用于获取该属性的值。
2. 使用`stream()`方法将对象列表转换为流。
3. 使用`map()`方法将每个对象映射为该属性的值。
4. 使用`collect()`方法将流中的值收集到一个新的字符串列表中。
下面是一个示例代码:
```java
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<MyObject> objectList = // 假设这是你的对象列表
List<String> stringList = objectList.stream()
.map(MyObject::getProperty) // getProperty 是对象的属性的 getter 方法
.collect(Collectors.toList());
// 输出结果
stringList.forEach(System.out::println);
}
}
class MyObject {
private String property;
public MyObject(String property) {
this.property = property;
}
public String getProperty() {
return property;
}
}
```
在这个示例中,我们假设`MyObject`是你的对象类,它有一个名为`property`的属性。我们使用`map()`方法提取每个对象的`property`属性的值,并使用`collect()`方法将这些值收集到一个新的字符串列表中。最后,我们通过迭代输出字符串列表来验证结果。
请根据你的实际情况进行适当的修改。希望这能帮到你!
阅读全文