Java程序检查字符串是否仅包含特定字符
对于给定的字符串,例如"str",编写一个Java程序来检查它是否包含指定字符数组中的每个字符。如果包含则打印"found",否则打印"not found"。
示例场景
Input 1: String str = "pqrst"; Input 2: char[] chSearch = {'p', 'q', r'}; Output: res = Character p, q and r found in given string
在字符串"pqrst"中,我们正在搜索字符集{'p', 'q', 'r'}。
使用迭代
这里,使用for循环迭代到字符串的长度,并检查字符串中的每个字符。如果在字符串中找到了给定字符数组中的匹配字符,则表示成功,否则表示失败。
示例
以下Java程序演示了如何检查指定字符串是否包含某些字符。
public class Demo { public static void main(String[] args) { String str = "pqrst"; // characters to be searched char[] chSearch = {'p', 'q', 'r'}; for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); for (int j = 0; j < chSearch.length; j++) { if (chSearch[j] == ch) { System.out.println("Character "+chSearch[j]+" found in string "+str); } } } } }
以上代码的输出如下:
Character p found in string pqrst Character q found in string pqrst Character r found in string pqrst
使用Java流
Java流是在Java 8版本中引入的。它用于对Java集合和数组执行各种操作,例如过滤、映射和归约。这里,我们使用filter()方法来查找流中仅存在于字符数组中的那些字符。
示例
让我们看看以上方法的实际演示:
import java.util.Arrays; public class Demo { public static void main(String[] args) { String str = "pqrst"; // characters to be searched char[] chSearch = {'p', 'q', 'r'}; // convert the string to a stream of characters str.chars() // convert each character to a char .mapToObj(c -> (char) c) // filter characters that are in chSearch .filter(ch -> new String(chSearch).indexOf(ch) >= 0) // for each matching character, print the message .forEach(ch -> System.out.println("Character " + ch + " found in string " + str)); } }
运行以上代码后将显示以下输出:
Character p found in string pqrst Character q found in string pqrst Character r found in string pqrst
广告