5个回答
展开全部
你的意思就是说,要写一个程序,来想办法把你的集合里面的所有数字提取出来是吗??我这里以数组为例写了一个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"},应该就是你想要的了,这中间使用了正则表达式的
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"},应该就是你想要的了,这中间使用了正则表达式的
展开全部
按照你说的写了个小列子
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));
}
}
}
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));
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的集合里
是什么意思?字符串的意思?
如果是字符串的话。
可以用replaceAll加正则替换。
str.replaceAll("\D","");
String str="5jjin15daidafa";
System.out.println(str.replaceAll("\\D",""));
你说集合,应该是遍历,然后用正则替换就好了。
是什么意思?字符串的意思?
如果是字符串的话。
可以用replaceAll加正则替换。
str.replaceAll("\D","");
String str="5jjin15daidafa";
System.out.println(str.replaceAll("\\D",""));
你说集合,应该是遍历,然后用正则替换就好了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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');
}
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);
}
}
}
希望可以帮到你
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);
}
}
}
希望可以帮到你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询