3 回答
TA贡献1815条经验 获得超10个赞
这在很大程度上取决于您对术语symbol的定义。
一个直接的解决方案可能是这样的
Set<Character> SYMBOLS = Set.of('@', ' ', ....
for (int i=0; i < someString.length(); i++} {
if (SYMBOLS.contains(someString.charAt(i)) {
这会迭代 chars someString,并检查每个 char 是否可以在该预定义的 SYMBOLS 集中找到它。
或者,您可以使用正则表达式来定义“符号”,或者,您可以依赖各种现有定义。当您检查 regex Pattern language for java 时,您可以找到
\w A word character: [a-zA-Z_0-9]
\W A non-word character: [^\w]
例如。以及已经表示这组或那组字符的各种其他快捷方式。
TA贡献1864条经验 获得超2个赞
请发布您到目前为止尝试过的内容
如果您需要单个字符的计数 - 您最好迭代字符串并使用映射来跟踪字符及其计数
或者
如果总计数就足够了,您可以使用正则表达式,如下所示
while (matcher.find() ) {count++}
TA贡献1818条经验 获得超11个赞
一种方法是遍历字符串并将每个字符与其 ASCII 值进行比较
String str = "abcd!@#";
for(int i=0;i<str.length();i++)
{
if(33==str.charAt(i))
System.out.println("Found !");
}
在此处查找 ASCII 值https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html
添加回答
举报