java如何从串中取出数字?
如下列样式的字符串:RMB34567.89¥123.45如何只取出其中的数字部分(首数字出现的位置不固定)...
如下列样式的字符串:
RMB34567.89
¥123.45
如何只取出其中的数字部分(首数字出现的位置不固定) 展开
RMB34567.89
¥123.45
如何只取出其中的数字部分(首数字出现的位置不固定) 展开
7个回答
展开全部
public class Test {
public static void main(String[] args) {
//String str="RMB34567.89"
String str ="¥123.45";
str =str.replaceAll("(?<!\\d)\\D", "");
System.out.println(str);
}
}
replaceAll是替换的意思, (?<!\\d)\\D里面 \\D表示非数字,(?<!\\d)表示去除数字后面的情况(你可以为去除所有非数字内容,除了数字之间的那个. 号)。
(?<!\\d)\\D的意思就是: 数字前面的非数字部分。 把这些都替换成"",也就是替换成空
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要从java的字符串中取出数字,首先要知道数字所在位置以及长度;或者能知道数字在串中前后位置的字符可以。
如:
String s = "abcd123sdfs";
int a = Integer.perseInt(s.substring(4,7));
int b = Integer.perseInt(s.substring(s.indexOf("d"),s.indexOf("s")));
如:
String s = "abcd123sdfs";
int a = Integer.perseInt(s.substring(4,7));
int b = Integer.perseInt(s.substring(s.indexOf("d"),s.indexOf("s")));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数字应该比较容易,中文的话也是有编码范围的,例如在Unicode编码中好像为4e00~9fa5(不确定)。所以我想你只需要扫描每个字符,判断其编码是否在对应区间就可以了。
或者使用正则表达式
或者使用正则表达式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Test {
public static void main(String[] args) {
//String str="RMB34567.89"
String str ="¥123.45";
str =str.replaceAll("(?<!\\d)\\D", "");
System.out.println(str);
}
}
public static void main(String[] args) {
//String str="RMB34567.89"
String str ="¥123.45";
str =str.replaceAll("(?<!\\d)\\D", "");
System.out.println(str);
}
}
追问
怎么理解呢?
追答
replaceAll是替换的意思, (?<!\\d)\\D里面 \\D表示非数字,(?<!\\d)表示去除数字后面的情况(你可以为去除所有非数字内容,除了数字之间的那个. 号)。
(?<!\\d)\\D的意思就是: 数字前面的非数字部分。 把这些都替换成"",也就是替换成空
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Main {
public static void main(String[] args) {
String str = "rmb12.3";
StringBuilder strb = new StringBuilder();
char cha[] = str.toCharArray();
for (int i = 0; i < cha.length; i++) {
if (Character.isDigit(cha[i]) || cha[i] == '.') {
strb.append(cha[i]);
}
}
double digit = Double.parseDouble(strb.toString());
System.out.println(digit);
}
}
public static void main(String[] args) {
String str = "rmb12.3";
StringBuilder strb = new StringBuilder();
char cha[] = str.toCharArray();
for (int i = 0; i < cha.length; i++) {
if (Character.isDigit(cha[i]) || cha[i] == '.') {
strb.append(cha[i]);
}
}
double digit = Double.parseDouble(strb.toString());
System.out.println(digit);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询