java中charAt();的越界问题

java中charAt();的越界问题,第1张

字符串的长度是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类型来处理。

参考资料:

-char数据类型

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12461003.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存