java判断一个字符串是否以数字开头
Stringstr="30年前";我要判断该字符串是否以数字开头,如果是还要把数字单独提取出来,再赋值到一个新的String变量中,怎么写?谢谢~另外我要把数字部分和中文...
String str = "30年前";
我要判断该字符串是否以数字开头,如果是还要把数字单独提取出来,再赋值到一个新的String变量中,怎么写?谢谢~
另外我要把数字部分和中文部分都分解开,分别赋值到新的String变量中。
如:str1 = "30"; str2="年前"; 展开
我要判断该字符串是否以数字开头,如果是还要把数字单独提取出来,再赋值到一个新的String变量中,怎么写?谢谢~
另外我要把数字部分和中文部分都分解开,分别赋值到新的String变量中。
如:str1 = "30"; str2="年前"; 展开
4个回答
展开全部
以下是antolife给您的回答,不能保证100%正确,但可给您一个建议.谢谢!
// 正则方式
String content = "30年前";
Pattern pattern = Pattern.compile("^(\\d+)(.*)");
Matcher matcher = pattern.matcher(content);
if (matcher.matches()) {//数字开头
System.out.println(matcher.group(1));// =30
System.out.println(matcher.group(2));// =年前
}
// 简单模式
String source = "30年前";
int indexOfNum = 0;
for (; indexOfNum < source.length(); indexOfNum++) {
if (!Character.isDigit(source.charAt(indexOfNum))) {
break;
}
}
if (indexOfNum != 0) {// 数字开头
System.out.println(source.substring(0, indexOfNum));// =30
System.out.println(source.substring(indexOfNum));// =年前
}
// 正则方式
String content = "30年前";
Pattern pattern = Pattern.compile("^(\\d+)(.*)");
Matcher matcher = pattern.matcher(content);
if (matcher.matches()) {//数字开头
System.out.println(matcher.group(1));// =30
System.out.println(matcher.group(2));// =年前
}
// 简单模式
String source = "30年前";
int indexOfNum = 0;
for (; indexOfNum < source.length(); indexOfNum++) {
if (!Character.isDigit(source.charAt(indexOfNum))) {
break;
}
}
if (indexOfNum != 0) {// 数字开头
System.out.println(source.substring(0, indexOfNum));// =30
System.out.println(source.substring(indexOfNum));// =年前
}
参考资料: 纯手工打造,请珍惜
展开全部
你把这个方法放进你的类中,调用它就可以
如果你传的不是数字开头的,就得到一个null,否则,它会给你返回一个字符串数组,第0位是数字部分,第[1]处是字符串部分,例如:你传的是"30年前",得到的将是str[0] = "30"; str[1] = "年前"
public String[] getNumberFromString(String srcString){
if ( srcString == null || srcString.charAt(0) < 48 || srcString.chatAt(0) > 57 ) return null;
String numberStr = "";
String stringStr = "";
for ( int i = 0; i < srcString.length(); i ++ ){
if ( srcString.charAt(i) >=48 && srcString.charAt(i) <= 57 ){
numberStr += srcString.charAt(i);
}else{
stringStr = srcString.substring(i); break;
}
}
return new String[]{ numberStr , stringStr };
}
如果你传的不是数字开头的,就得到一个null,否则,它会给你返回一个字符串数组,第0位是数字部分,第[1]处是字符串部分,例如:你传的是"30年前",得到的将是str[0] = "30"; str[1] = "年前"
public String[] getNumberFromString(String srcString){
if ( srcString == null || srcString.charAt(0) < 48 || srcString.chatAt(0) > 57 ) return null;
String numberStr = "";
String stringStr = "";
for ( int i = 0; i < srcString.length(); i ++ ){
if ( srcString.charAt(i) >=48 && srcString.charAt(i) <= 57 ){
numberStr += srcString.charAt(i);
}else{
stringStr = srcString.substring(i); break;
}
}
return new String[]{ numberStr , stringStr };
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String.substring(beg,end);可以截取字符串,你可以一个一个截取出来,然后试着转换成整数与0~9比较,成功就把它转到另一个字符串中,依次进行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用ascii码
public static boolean isNumeric(String str){
int chr=str.charAt(0);
if(chr<48 || chr>57)
return false;
}
return true;
}
判断一下不久好了呀,如果是数字把数字提取出来""+“‘拼成字符串然后其他一样的做法
public static boolean isNumeric(String str){
int chr=str.charAt(0);
if(chr<48 || chr>57)
return false;
}
return true;
}
判断一下不久好了呀,如果是数字把数字提取出来""+“‘拼成字符串然后其他一样的做法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询