Java 字符串只包含字母表
我是Java编程新手,需要帮助。 创建一个字符串表,用户给出大小。随后,用户给出字符串。我想打印字符,但不打印不是字母表字母的字符(例如java!4-->java,ja/?,.va-->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
您可以使用正则表达式检查
字符串是否只有字母表。
下面是示例代码
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();
}