Java程序检查字符串是否仅包含特定字符


对于给定的字符串,例如"str",编写一个Java程序来检查它是否包含指定字符数组中的每个字符。如果包含则打印"found",否则打印"not found"

Java中,字符串是一个类,表示一个连续的字符块。

示例场景

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

更新于: 2024年9月11日

1K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告