字符串内的元素逐一取出的方法"/>
Java中将字符串内的元素逐一取出的方法
我们时常遇到一样一个情况,手动输入一个字符串,但你需要将字符串内的各个元素逐一取出使用,亦或只取其中几位,这些元素可能是数字也可能是字母。之前我就卡在,手动输入一定得用字符串接收,总不能用数组吧,数组使用那么多界限,更何况像数字和字母混搭的情况只能用字符串了。可如何将字符串内的东西拿出来?
终于发现了一个很好用的函数,charat函数。
首先,对charat函数进行介绍:
charAt(int index)方法是一个能够用来检索特定索引下的字符的String实例的方法.
charAt()方法返回指定索引位置的char值。索引范围为0~length()-1.
如: str.charAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符.
方法描述
public char charAt(int index)
返回处于index位置上的字符,index的范围是[0,s.length()-1],字符串中的第一个字符位于index 0上,下一个字符位于index 1上,并以此类推,类似于数组下标索引。
抛出异常:IndexOutOfBoundsException:当参数为负数或者参数不小于字符串的长度时抛出。
语法
方法声明 public char charAt(int index)
入口参数:index是char的索引值
注释:字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length之间,该方法将返回一个空字符串。提示和注释
示例
使用charAt函数获取字符串strCom中索引值为4的char值,并将结果赋值给int变量strLower。
javascript实例
如何使用 charAt() 从某个字符串取得具体的字符。
<注明:以上对函数的解释援引360百科>
用一个十进制转换成十六进制的实例展示:
long sum=0,b,tmp=1; String a = null;Scanner sc = new Scanner(System.in);a = sc.next();for(int i=a.length()-1;i >= 0;i--){b = a.charAt(i);if(b>='0' && b<='9'){b = (b - '0') * tmp;sum = sum + b;tmp = tmp * 16;}else if(b>='A' && b<='F'){b = (b - 'A' + 10) * tmp;sum = sum + b;tmp = tmp * 16;}}System.out.println(sum);
对该函数的摘要如下:
-
b = a.charAt(i);
此处以长整型接收数据,所以所有数据以十进制的ASCII码保存,因为“charAt()方法返回指定索引位置的char值。索引范围为0~length()-1.”。 -
if(b>=‘0’ && b<=‘9’)
charAt读取到的字符都是十进制形式的ASCII码,需要转换才能使用,所以此次也不能直接用十进制数字进行比较,用if(b>=0 && b <=9)则错误。 -
字符串中的第一个字符位于index 0上,下一个字符位于index 1上,并以此类推,类似于数组下标索引。注意,如果for(int i=0;i < a.length - 1;i++),则该函数是从字符串最左边读到最右边。
-
b = b - ‘0’
此处是数字的ASCII码转换成数字的方法,即数字的char型转换成int型的方法。 -
b = b - ‘A’ + 10
此处是十六进制下字母转换成对应数字的方法。
更多推荐
Java中将字符串内的元素逐一取出的方法
发布评论