3 回答

TA貢獻1815條經(jīng)驗 獲得超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 集中找到它。
或者,您可以使用正則表達式來定義“符號”,或者,您可以依賴各種現(xiàn)有定義。當您檢查 regex Pattern language for java 時,您可以找到
\w A word character: [a-zA-Z_0-9]
\W A non-word character: [^\w]
例如。以及已經(jīng)表示這組或那組字符的各種其他快捷方式。

TA貢獻1864條經(jīng)驗 獲得超2個贊
請發(fā)布您到目前為止嘗試過的內(nèi)容
如果您需要單個字符的計數(shù) - 您最好迭代字符串并使用映射來跟蹤字符及其計數(shù)
或者
如果總計數(shù)就足夠了,您可以使用正則表達式,如下所示
while (matcher.find() ) {count++}

TA貢獻1818條經(jīng)驗 獲得超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
添加回答
舉報