📜  java 查找字符串中的所有字母 - Java (1)

📅  最后修改于: 2023-12-03 14:42:19.208000             🧑  作者: Mango

Java 查找字符串中的所有字母

在Java中,可以使用多种方法来查找一个字符串中的所有字母。本文将介绍三种常用方法:

  1. 使用正则表达式
  2. 使用循环遍历
  3. 使用Java 8的Stream API
使用正则表达式
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class FindLettersWithRegex {
    public static void main(String[] args) {
        String str = "hello123world";
        String regex = "[a-zA-Z]";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        
        StringBuilder letters = new StringBuilder();
        while (matcher.find()) {
            letters.append(matcher.group());
        }
        
        System.out.println("所有字母: " + letters);
    }
}

以上代码中,我们使用Pattern类来编译正则表达式[a-zA-Z],然后使用Matcher类来匹配字符串。循环遍历所有匹配的字母,并将它们添加到letters字符串中,最后打印出所有字母。

使用循环遍历
public class FindLettersWithLoop {
    public static void main(String[] args) {
        String str = "hello123world";
        
        StringBuilder letters = new StringBuilder();
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (Character.isLetter(c)) {
                letters.append(c);
            }
        }
        
        System.out.println("所有字母: " + letters);
    }
}

以上代码使用一个循环来遍历字符串中的每个字符,通过Character.isLetter()方法判断是否是字母,并将字母添加到letters字符串中。

使用Java 8的Stream API
import java.util.stream.Collectors;

public class FindLettersWithStream {
    public static void main(String[] args) {
        String str = "hello123world";
        
        String letters = str.chars()
                .filter(Character::isLetter)
                .mapToObj(c -> String.valueOf((char) c))
                .collect(Collectors.joining());
        
        System.out.println("所有字母: " + letters);
    }
}

以上代码使用Java 8的Stream API来处理字符串。我们首先将字符串转换为一个字符流,然后使用filter()方法过滤出字母,再使用mapToObj()方法将字符转换为字符串对象,最后使用collect()方法将所有字母连接起来。

通过这三种方法,我们可以在Java中轻松地查找一个字符串中的所有字母。