Java中将字符串内的元素逐一取出的方法

3 篇文章 0 订阅

我们时常遇到一样一个情况,手动输入一个字符串,但你需要将字符串内的各个元素逐一取出使用,亦或只取其中几位,这些元素可能是数字也可能是字母。之前我就卡在,手动输入一定得用字符串接收,总不能用数组吧,数组使用那么多界限,更何况像数字和字母混搭的情况只能用字符串了。可如何将字符串内的东西拿出来?

终于发现了一个很好用的函数,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);

对该函数的摘要如下:

  1. b = a.charAt(i);
    此处以长整型接收数据,所以所有数据以十进制的ASCII码保存,因为“charAt()方法返回指定索引位置的char值。索引范围为0~length()-1.”。

  2. if(b>=‘0’ && b<=‘9’)
    charAt读取到的字符都是十进制形式的ASCII码,需要转换才能使用,所以此次也不能直接用十进制数字进行比较,用if(b>=0 && b <=9)则错误。

  3. 字符串中的第一个字符位于index 0上,下一个字符位于index 1上,并以此类推,类似于数组下标索引。注意,如果for(int i=0;i < a.length - 1;i++),则该函数是从字符串最左边读到最右边。

  4. b = b - ‘0’
    此处是数字的ASCII码转换成数字的方法,即数字的char型转换成int型的方法。

  5. b = b - ‘A’ + 10
    此处是十六进制下字母转换成对应数字的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值