java 获取字符串中第一个数字_java获得一个String字符串中第一个数字的下标,并截取后面的6位和前面的地区...

本文介绍了一种在Java中快速定位字符串内首个日期并进行截取的方法。通过正则表达式和循环遍历字符的方式,可以有效找到第一个数字的位置,并进一步截取出所需的日期格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小白一只,现在的环境是这样的:

一个String类型的变量”杭州20170222ax”或者是”乌鲁木齐20170222拉拉”

我想拿到201702,总之从左往右开始得到第一个数字,在往右截6位(substring),关键是怎么得到第一个数字的下标?我现在想拿第一个数字的位置!!因为我可能要获取全地区的名字

String str="宁波20170222呵呵22";

String regEx="\\D";

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher(str);

String result=m.replaceAll("").trim();

Character ch=result.charAt(0);

int index=str.indexOf(ch);

String diqu=str.substring(0,index);

String riqi=str.substring(index,index+6);

感觉代码好长有短点的吗

String s = "杭州20170222ax";

Pattern p = Pattern.compile("([0-9].{5,5})");

Matcher m = p.matcher(s);

m.find();

System.out.println(m.group(1));

遍历字符串,str.charAt(i)>=48 && str.charAt(i)<=57判断数字,第一个符合要求的,就是下标

System.out.println( new Scanner("宁波20170222呵呵22").useDelimiter("\\D+").nextInt());

String s = "杭州20170222ax";

char[] chars = s.toCharArray();

for (int i = 0; i < chars.length; i++) {

if (Character.isDigit(chars[i])) {

System.out.println(s.substring(i, i + 6));

break;

}

}

http://www.cnblogs.com/androi…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值