编写一个程序,输出一个字符串的大写英文字母数,小写英文字母书以及非英文字母数
public class TestStringCase {
public static void main(String[] args) {
String s = "ABAabb$&^$#BAAb898B#@%aa";
int cU = 0, cL = 0, cO = 0;
for(int i=0; i<s.length(); i++) {
char c = s.charAt(i);
if(c >= 'A' && c <= 'Z') {
cU ++;
} else if( c >= 'a' && c <='z') {
cL ++;
} else {
cO ++;
}
}
System.out.println("大写:" + cU);
System.out.println("小写:" + cL);
System.out.println("其他:" + cO);
}
}
charAt
public char charAt(int index)返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值在索引 0 处,第二个在索引 1 处,依此类推,这类似于数组索引。
如果索引指定的 char 值是代理项,则返回代理项值。
指定者:
接口 CharSequence 中的 charAt
参数:
index - char 值的索引。
返回:
此字符串指定索引处的 char 值。第一个 char 值在索引 0 处。
抛出:
IndexOutOfBoundsException - 如果 index 参数为负或小于此字符串的长度。
这个api文档也没有说 charAt是一个字符与另一个字符的做比较??
public class TestStringCase {
public static void main(String[] args) {
String s = "ABAabb$&^$#BAAb898B#@%aa";
int cU = 0, cL = 0, cO = 0;
for(int i=0; i<s.length(); i++) {
char c = s.charAt(i);
if(c >= 'A' && c <= 'Z') {
cU ++;
} else if( c >= 'a' && c <='z') {
cL ++;
} else {
cO ++;
}
}
System.out.println("大写:" + cU);
System.out.println("小写:" + cL);
System.out.println("其他:" + cO);
}
}
charAt
public char charAt(int index)返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值在索引 0 处,第二个在索引 1 处,依此类推,这类似于数组索引。
如果索引指定的 char 值是代理项,则返回代理项值。
指定者:
接口 CharSequence 中的 charAt
参数:
index - char 值的索引。
返回:
此字符串指定索引处的 char 值。第一个 char 值在索引 0 处。
抛出:
IndexOutOfBoundsException - 如果 index 参数为负或小于此字符串的长度。
这个api文档也没有说 charAt是一个字符与另一个字符的做比较??
比较就用> < 之类的操作符
比如String str = "abcdA";
char a = str.charAt(0); //字符型变量a 为 'a'
char b = str.charAt(1); //b 为 'b'
char c = str.charAt(4); //c 为 'A'