如何筛选并打印字符串数组中以‘New’开头的元素?
筛选并打印以‘New’开头的字符串数组元素
没问题!我来给你几个常用编程语言的实现方案,帮你快速搞定这个需求~
Python 实现
假设你的字符串数组是这样的:["New York", "London", "New Delhi", "Paris", "New Orleans"],可以用下面两种方法筛选:
方法1:列表推导式(简洁直观)
string_array = ["New York", "London", "New Delhi", "Paris", "New Orleans"] # 筛选以"New"开头的元素 filtered_arr = [s for s in string_array if s.startswith("New")] # 打印结果 for item in filtered_arr: print(item)
解释:startswith("New")是Python字符串自带的方法,直接检查字符串是否以指定前缀开头,代码简洁可读性高。
方法2:filter函数(函数式风格)
string_array = ["New York", "London", "New Delhi", "Paris", "New Orleans"] # 用filter配合匿名函数过滤 filtered_arr = list(filter(lambda s: s.startswith("New"), string_array)) # 打印结果 for item in filtered_arr: print(item)
解释:filter会遍历数组,把符合匿名函数条件的元素保留下来,最后转成列表即可。
JavaScript 实现
同样用示例数组["New York", "London", "New Delhi", "Paris", "New Orleans"]:
方法1:filter方法(ES6+推荐)
const stringArray = ["New York", "London", "New Delhi", "Paris", "New Orleans"]; // 筛选符合条件的元素 const filteredArr = stringArray.filter(str => str.startsWith("New")); // 逐个打印结果 filteredArr.forEach(item => console.log(item));
解释:filter方法返回新数组,只包含满足条件的元素,startsWith方法用来检查前缀,代码简洁高效。
方法2:兼容旧环境的循环遍历
如果需要支持不支持ES6的旧环境,可以用普通循环:
const stringArray = ["New York", "London", "New Delhi", "Paris", "New Orleans"]; const filteredArr = []; // 遍历数组筛选 for (let i = 0; i < stringArray.length; i++) { // indexOf返回0表示字符串开头就是"New" if (stringArray[i].indexOf("New") === 0) { filteredArr.push(stringArray[i]); } } // 打印结果 for (let item of filteredArr) { console.log(item); }
Java 实现
示例数组:{"New York", "London", "New Delhi", "Paris", "New Orleans"}
方法1:Stream API(Java 8+推荐)
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class FilterStartsWithNew { public static void main(String[] args) { String[] stringArray = {"New York", "London", "New Delhi", "Paris", "New Orleans"}; // 用Stream筛选并收集成列表 List<String> filteredList = Arrays.stream(stringArray) .filter(str -> str.startsWith("New")) .collect(Collectors.toList()); // 打印结果 filteredList.forEach(System.out::println); } }
解释:Java 8引入的Stream API让集合操作更简洁,filter方法负责筛选,collect把结果转成列表。
方法2:普通for循环(轻量高效)
public class FilterStartsWithNew { public static void main(String[] args) { String[] stringArray = {"New York", "London", "New Delhi", "Paris", "New Orleans"}; // 直接遍历数组,符合条件就打印 for (String str : stringArray) { if (str.startsWith("New")) { System.out.println(str); } } } }
解释:不需要额外存储筛选后的列表,遍历过程中直接打印符合条件的元素,内存占用更低。
内容的提问来源于stack exchange,提问作者Yash Kaushik




