
字符串的长度是6但是每个字符的下标是从0开始计算
所以charAt(i)中的i最大是字符串长度-1
你在do while循环里有个i++,i 如果等于5的时候,在charAt(i)就明显越界了
charAt () 的用法是
String s = "test";
char stringi2 = scharAt(2);
所以你的那个写错了 前面应该有一个stricharAt(n)
public class Test {
public static void main(String[] args) {
String s ="abc";
Systemoutprintln(scharAt(1));
}
}
the answer is:
b
s是一个字符穿,比如是"abc"
,其实字符串是数组实现的也可以看成是'a'
,'b'
,'c'
在你scharat(0)的时候相当于获取的是数据的第0个元素,
虽然你获取的是scharat(0)但是返回的一样是一个字符串“a”
属于报这个错误
可以创建Scanner类来从键盘输入一个字符,用String类型来接收,再使用String的charAt功能,具体步骤如下:
1、先创建一个Scanner对象,如:Scanner sc = new Scanner(Systemin);
2、然后再调用Scanner对象sc的next()方法获取控制台输入,定义一个String类型的变量s来接收控制台输入的字符,如:String s = scnext();
3、调取变量s的charAt(0)方法获取第一个字符,如:char c = scharAt(0);
扩展资料
字符型值有如下三种表示形式
1、直接通过单个字符来指定字符型值,例如‘A’、‘9’和‘0’等。
2、通过转义字符表示特殊字符型值,例如‘\n’、‘\t’等。
3、直接使用Unicode值来表示字符型值,格式是‘\uXXXX’,其中XXXX代表一个十六进制的整数
字符型值也可以采用十六进制编码方式来表示,范围是‘\u0000’~‘\uFFFF’,一共可以表示65536个字符,其中前256个(‘\u0000’~‘\u00FF’)字符和ASCII码中的字符完全重合。
由于计算机底层保存字符时,实际是保存该字符对应的编号,因此char类型的值也可直接作为整型值来使用,它相当于一个16位的无符号整数,表数范围是0~65535。
如果把0~65535范围内的一个int整数赋给char类型变量,系统会自动把这个int整数当成char类型来处理。
参考资料:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)