3 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
這在很大程度上取決于您對(duì)術(shù)語(yǔ)symbol的定義。
一個(gè)直接的解決方案可能是這樣的
Set<Character> SYMBOLS = Set.of('@', ' ', ....
for (int i=0; i < someString.length(); i++} {
if (SYMBOLS.contains(someString.charAt(i)) {
這會(huì)迭代 chars someString,并檢查每個(gè) char 是否可以在該預(yù)定義的 SYMBOLS 集中找到它。
或者,您可以使用正則表達(dá)式來(lái)定義“符號(hào)”,或者,您可以依賴(lài)各種現(xiàn)有定義。當(dāng)您檢查 regex Pattern language for java 時(shí),您可以找到
\w A word character: [a-zA-Z_0-9]
\W A non-word character: [^\w]
例如。以及已經(jīng)表示這組或那組字符的各種其他快捷方式。

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

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
一種方法是遍歷字符串并將每個(gè)字符與其 ASCII 值進(jìn)行比較
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
添加回答
舉報(bào)