charAt方法返回的是返回指定索引处的字符。
将charAt()方法返回的值赋给int、double、float等数据类型的变量时返回的是字符的ASCII码值,并非int型数值。
如字符串s1所示,其表示的是一串数字,如果想要输出charAt(0)处的值(5),则需要让charAt()方法返回的字符'5'的ASCII码值减去字符'0'的ASCII码值,如c所示。
如果需要直接输出字符串中的字符,如输出字符串s2中的字符,仅需将变量类型定义为char型。
public static void main(String[] args) {
// 将charAt方法返回的结果赋给int、double、float等类型变量时,返回的是字符的ASCII码值。
String s1 = "5678";
int a =s1.charAt(0);
int b =Integer.valueOf(s1.charAt(0));
int c = s1.charAt(0)-'0';//如果需要返回字符串中原本的数值,直接减去'0'的ASCII码值即可
System.out.println(a);
System.out.println(b);
System.out.println(c);
double dou = s1.charAt(0);
System.out.println(dou);
// 将charAt方法返回的结果赋给char型变量时,返回的是字符本身。
// 注意:不能返回string类型
String s2 = "国庆快乐!";
char result = s2.charAt(0);
System.out.println(result);
}
运行结果为
53
53
5
53.0
国