Java 字符串只包含字母表

Java 字符串只包含字母表,java,string,Java,String,我是Java编程新手,需要帮助。 创建一个字符串表,用户给出大小。随后,用户给出字符串。我想打印字符,但不打印不是字母表字母的字符(例如java!4-->java,ja/?,.va-->java) 您可以使用正则表达式检查字符串是否只有字母表。 下面是示例代码 String word = "java"; Pattern pattern = Pattern.compiles("[a-zA-Z]+"); Matcher matcher = pattern.ma

我是Java编程新手,需要帮助。 创建一个字符串表,用户给出大小。随后,用户给出字符串。我想打印字符,但不打印不是字母表字母的字符(例如java!4-->java,ja/?,.va-->java)


您可以使用正则表达式检查
字符串是否只有
字母表。
下面是示例代码

String word = "java";
Pattern pattern = Pattern.compiles("[a-zA-Z]+");
Matcher matcher = pattern.matcher(word);
System.out.println(pattern.find());
或者您可以从中使用
String.matches(regex)

您可以在这里阅读更多信息。

您可以使用一个非常简单的正则表达式:
s/[^a-z]//g
。这将不替换字符串中不在范围
A-z
内的所有字符,该范围封装了所有字母(大写和小写)。只需执行
new\u string=old\u string.replaceAll(“^A-z]”,即“)

由于您是编程新手,不想卷入RegEx世界(但),您可以创建一个只返回字母的
字符串的方法:

public String getStringOfLettersOnly(String s) {
    //using a StringBuilder instead of concatenate Strings
    StringBuilder sb = new StringBuilder();
    for(int i = 0; i < s.length(); i++) {
        if (Character.isLetter(s.charAt(i))) {
            //adding data into the StringBuilder
            sb.append(s.charAt(i));
        }
    }
    //return the String contained in the StringBuilder
    return sb.toString();
}
公共字符串GetStringOfLittersOnly(字符串s){
//使用StringBuilder而不是连接字符串
StringBuilder sb=新的StringBuilder();
对于(int i=0;i
为了响应建议的编辑,删除
新字符串
旧字符串
,并使用单个变量:包括两个变量可以使意图更清晰,通常最好将此类值视为不可变值,而不是多次重新分配给同一变量,即使是在生产代码中。因为您是新来的,所以您最好从关于您的问题的帖子中知道您应该这样做。
String word = "java";
Pattern pattern = Pattern.compiles("[a-zA-Z]+");
Matcher matcher = pattern.matcher(word);
System.out.println(pattern.find());
public String getStringOfLettersOnly(String s) {
    //using a StringBuilder instead of concatenate Strings
    StringBuilder sb = new StringBuilder();
    for(int i = 0; i < s.length(); i++) {
        if (Character.isLetter(s.charAt(i))) {
            //adding data into the StringBuilder
            sb.append(s.charAt(i));
        }
    }
    //return the String contained in the StringBuilder
    return sb.toString();
}