gpt4 book ai didi

java - 如何仅在Java中从文本文件中读取字母(a-z || A-Z)和数字(0-9)字符?

转载 作者:行者123 更新时间:2023-12-01 07:22:40 28 4
gpt4 key购买 nike

所以我想将字母或数字添加到字符列表中?我不想有任何空格或 .或,或?或任何其他标志。我只想要纯数字和字母。我的部分代码如下:

while((r = br.read()) != -1){
char c = (char) r;
if (!((c == ' ') || (c == ',') || (c == '.') || (c == '?')))
output.add(c);
}

您可以看到我添加了一个 if 语句来检查空格 或 , 或 。或者 ?有什么有效的方法可以做到这一点吗?这样我就不必在声明中包含所有标志,从而使其更长。

最佳答案

如果您逐个字符地检查它,那么很容易检查允许的内容,而不是不允许的内容,特别是因为您的标准只有三个范围:0- 9、a-z 和 A-Z。例如:

if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
output.add(c);
}

如您所见,这不是最漂亮的代码,这就是为什么最好使用 Java 内置的 Character.is? 方法:

if (Character.isDigit(c) || Character.isLetter(c)) {
output.add(c);
}

但是,如果您能够读取字符串,则可以使用正则表达式检查它们的有效性,如下所示:

if (s.matches("[0-9A-Za-z]*")) {
output.add(s);
}

这只会添加包含零个或多个数字以及小写或大写字母(以任何顺序)的字符串。当然,您可以将此解决方案用于单字符字符串,尽管不太推荐(对于字符,您最好使用 Character 类)。

关于java - 如何仅在Java中从文本文件中读取字母(a-z || A-Z)和数字(0-9)字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31509133/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com