如何检查java中字符串中有多少个字母?

tus*_*sya 20 java string

如何检查Java字符串中有多少个字母?

如何检查字符串中某个位置的字母(即字符串的第二个字母)?

sse*_*ell 44

一个)

String str = "a string";
int length = str.length( ); // length == 8
Run Code Online (Sandbox Code Playgroud)

http://download.oracle.com/javase/7/docs/api/java/lang/String.html#length%28%29

编辑

如果要计算a中特定类型字符的数量String,那么一个简单的方法是String针对您的测试用例迭代检查每个索引.

int charCount = 0;
char temp;

for( int i = 0; i < str.length( ); i++ )
{
    temp = str.charAt( i );

    if( temp.TestCase )
        charCount++;
}
Run Code Online (Sandbox Code Playgroud)

其中TestCase可以是isLetter( ),isDigit( )

或者,如果你只是想什么都算,但空格,然后做一次检查在iftemp != ' '

B)

String str = "a string";
char atPos0 = str.charAt( 0 ); // atPos0 == 'a'
Run Code Online (Sandbox Code Playgroud)

http://download.oracle.com/javase/7/docs/api/java/lang/String.html#charAt%28int%29

  • 我认为字母数量不一定等于字符串长度 - 空格不被认为是字母,或者是它? (4认同)
  • 如果您正在计算字母,则上述解决方案仅适用于ASCII字符.例如 (2认同)

Tho*_*sMH 7

如果您正在计算字母,则上述解决方案对于某些 unicode 符号将失败。例如,对于这 5 个字符,sample.length() 将返回 6 而不是 5:

\n\n
String sample = "\\u760c\\u0444\\u03b3\\u03b5\\ud800\\udf45"; // \xe7\x98\x8c\xd1\x84\xce\xb3\xce\xb5\n
Run Code Online (Sandbox Code Playgroud)\n\n

codePointCount 函数是在 Java 1.5 中引入的,据我所知,它可以为字形等提供更好的结果

\n\n
sample.codePointCount(0, sample.length()) // returns 5\n
Run Code Online (Sandbox Code Playgroud)\n\n

http://globalizer.wordpress.com/2007/01/16/utf-8-and-string-length-limitations/

\n


Ale*_*ski 5

以简单的方式回答您的问题:

    a) String.length();
    b) String.charAt(/* String index */);
Run Code Online (Sandbox Code Playgroud)

  • String.length()返回Unicode单元的数量,而不是字符数.仅当字符串中的每个字母恰好为1个Unicode单位时,结果才是正确的. (2认同)