关于JAVA的Substring()方法

我的集合里的数据有5斤,15袋的数据怎么截取出只有数字不要汉字的方法... 我的集合里的数据有5斤,15袋的数据 怎么截取出只有数字 不要汉字的方法 展开
 我来答
fafakkandyaer
2013-03-18 · TA获得超过298个赞
知道小有建树答主
回答量:266
采纳率:100%
帮助的人:176万
展开全部
你的意思就是说,要写一个程序,来想办法把你的集合里面的所有数字提取出来是吗??我这里以数组为例写了一个demo,测试过了的

import java.util.regex.Pattern;
public class GetNumbersTest {
public static void main(String[] args) {
String[] words=new String[]{"5斤","15袋","30包"};
String[] result=getNumbers(words);
for(String s:result){
System.out.println(s);
}
}
public static String[] getNumbers(String[] words){
String[] result=new String[words.length];;
for(int j=0;j<words.length;j++){
StringBuffer tempStr=new StringBuffer();
for(int i=0;i<words[j].length();i++ ){
if(isNumeric(String.valueOf(words[j].charAt(i)))){
tempStr.append(words[j].charAt(i));
}
}
result[j]=tempStr.toString();
}
return result;
}
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}

}

最后的结果数组为{"5","15","30"},应该就是你想要的了,这中间使用了正则表达式的
zhouweidong_12
推荐于2018-04-10
知道答主
回答量:29
采纳率:0%
帮助的人:21.1万
展开全部
按照你说的写了个小列子

package com.zwd.first;

import java.util.ArrayList;
import java.util.List;

public class Test2 {
public static void main(String[] args) {

List<String> list=new ArrayList<String>();
list.add("5斤");
list.add("15袋");
for(String s:list){
System.out.println(s.substring(0, s.length()-1));
}
}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌微月2S
2013-03-18 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2894万
展开全部
我的集合里

是什么意思?字符串的意思?
如果是字符串的话。
可以用replaceAll加正则替换。
str.replaceAll("\D","");
String str="5jjin15daidafa";
System.out.println(str.replaceAll("\\D",""));
你说集合,应该是遍历,然后用正则替换就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sirouszlh
2013-03-18 · TA获得超过1651个赞
知道小有建树答主
回答量:1038
采纳率:100%
帮助的人:644万
展开全部
ArrayList<String> list=new ArrayList<String>();
list.add("我5斤");
list.add("你的15袋");
for(String s:list){
for (int i=0;i<s.length();i++)
{
if (Character.isDigit(s.charAt(i))!=true)
{
s = s.replaceAll(s.charAt(i)+"", "");
i--;
}
}
System.out.print(s+'\r');
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-18
展开全部
可以使用正则表达式进行提取字符串里面的数字:
public class MyTest {
public static void main(String[] args) throws Exception {
List<String> prods = new ArrayList<String>();
prods.add("5斤");
prods.add("15袋");

String p = null;
for (int i = 0; i < prods.size(); i++) {
p = prods.get(i);
String str = p.replaceAll("([0-9]+)(.*)$", "$1");
System.out.println(str);
}
}
}
希望可以帮到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式