如何从字符串中提取出数字

Myxiao7_ 2010-08-05 04:10:48
"love23next234csdn3423javaeye"

如何从上述的字符串中提取出数字?


/**
* 从字符串文本中获得数字
* @param text
* @return
*/
public static List<String> getDigit(String text) {
List<String> digitList=new ArrayList<String>();
//你的高见哈哈
return digitList;
}




请高手指教!
...全文
33468 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
凉岑玉 2010-08-06
  • 打赏
  • 举报
回复

public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 这个程序能选出字符串内的数字类型的字符串
*/

// 声明一个字符串,里面含有数字
String str = "234khj455hj234kl234好看好3423/.,/.,/.,df43554";
// 声明一个String类型的数组,并且使用循环使里面的元素是字符串0-9
String[] array1 = new String[10];
for (int i = 0; i <= 9; i++) {
array1[i] = Integer.toString(i);// 直接将整型转换成字符串类型
}
// 声明一个整型用于保存字符串的长度
int a = str.length();
// 再声明一个字符串数组,用于将字符串的元素保存在此数组中
String[] array2 = new String[a];
for (int j = 0; j < str.length(); j++) {
array2[j] = str.substring(j, j + 1);
// System.out.print(array2[j]+" ");
}

// 使用循环·判断·已经将字符串保存起来的字符串数组的元素是否与包含0-9的字符串数组的元素相等

for (int k = 0; k < a; k++) {
for (int m = 0; m < array1.length; m++) {
// 如果相等·则说明该元素是数字··将其输出
boolean bool = array2[k].equals(array1[m]);
if (bool) {
System.out.print(array2[k]);
}
}
}

}
凉岑玉 2010-08-06
  • 打赏
  • 举报
回复

public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 这个程序能选出字符串内的数字类型的字符串
*/

// 声明一个字符串,里面含有数字
String str = "234khj455hj234kl234好看好3423/.,/.,/.,df43554";
// 声明一个String类型的数组,并且使用循环使里面的元素是字符串0-9
String[] array1 = new String[10];
for (int i = 0; i <= 9; i++) {
array1[i] = Integer.toString(i);// 直接将整型转换成字符串类型
}
// 声明一个整型用于保存字符串的长度
int a = str.length();
// 再声明一个字符串数组,用于将字符串的元素保存在此数组中
String[] array2 = new String[a];
for (int j = 0; j < str.length(); j++) {
array2[j] = str.substring(j, j + 1);
// System.out.print(array2[j]+" ");
}

// 使用循环·判断·已经将字符串保存起来的字符串数组的元素是否与包含0-9的字符串数组的元素相等

for (int k = 0; k < a; k++) {
for (int m = 0; m < array1.length; m++) {
// 如果相等·则说明该元素是数字··将其输出
boolean bool = array2[k].equals(array1[m]);
if (bool) {
System.out.print(array2[k]);
}
}
}

}
//这是我做的··可能代码有点多··但是我觉得这样很容易理解··
zhuzeitou 2010-08-06
  • 打赏
  • 举报
回复
public static List<Long> getDigit(String text) {
List<Long> digitList = new ArrayList<Long>();
String[] arr = text.split("[^\\d]+");
for (String str : arr) {
if (str.length() > 0)
digitList.add(Long.valueOf(str));
}
return digitList;
}
jennyzhangyi 2010-08-06
  • 打赏
  • 举报
回复
public static void test(){
String str = "love23next234csdn3423javaeye";
List list = new ArrayList();
char[] newStr = str.toCharArray();
for(int i = 0; i < newStr.length; i ++){
Character c = (Character)newStr[i];
if(c.isDigit(newStr[i])){
list.add(c);
}
}
}
robin_hood2012 2010-08-06
  • 打赏
  • 举报
回复
很明显用正则表达式吧
jennyzhangyi 2010-08-06
  • 打赏
  • 举报
回复
我面试的时候遇到这样的题目,不过还要累计出现次数最多的那个数。
LZ的问题可以把”love23next234csdn3423javaeye“.toAarray(),
让后遍历,将遍历的每个元素转换成Character,character有这个方法isDigit(),就可以取出字符串中的数字了,呵呵。
xautswfc 2010-08-06
  • 打赏
  • 举报
回复
学习了!一直用正则表达式这么用还是头一次见!
同光和尘 2010-08-06
  • 打赏
  • 举报
回复
正则表达试
iverson79_82 2010-08-06
  • 打赏
  • 举报
回复
正则表达式
「已注销」 2010-08-06
  • 打赏
  • 举报
回复
/**
* 从字符串文本中获得数字
* @param text
* @return
*/
public static List<String> getDigit(String text) {
List<String> digitList=new ArrayList<String>();
Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher(text);
while(m.find()){
String value = m.group();
digitList.add(value);
}
return digitList;
}
coooliang 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yktd26 的回复:]
Java code
String s = "aba13az12bab";
List<String> ss = new ArrayList<String>();
for(String sss:s.replaceAll("[^0-9]", ",").split(",")){
if (sss.length()>0)
……
[/Quote]
正解!!!
hy158753228 2010-08-05
  • 打赏
  • 举报
回复
貌似这样的问题首先应该想到的应该是regular expression 吧
小胖总 2010-08-05
  • 打赏
  • 举报
回复
学习一下 :)
Myxiao7_ 2010-08-05
  • 打赏
  • 举报
回复
感谢众人的热情帮助
Myxiao7_ 2010-08-05
  • 打赏
  • 举报
回复


/**
* 从字符串文本中获得数字
* @param text
* @return
*/
public static List<Long> getDigit(String text) {
List<Long> digitList = new ArrayList<Long>();
Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher(text);
while (m.find()) {
String find = m.group(1).toString();
digitList.add(Long.valueOf(find));
}
return digitList;
}


贴贴自己最后查阅文档找出的答案
zgylhm 2010-08-05
  • 打赏
  • 举报
回复
public static List<String> getDigit(String text) {
List<String> digitList=new ArrayList<String>();
String s[]=text.split("\\D");
for(int x=0;x<s.length;x++)
{
if(!s[x].equals(""))
digitList.add(s[x]);
System.out.println(s[x]);
}
return digitList;
}
lizhizhi870226 2010-08-05
  • 打赏
  • 举报
回复
学习了!!!
yktd26 2010-08-05
  • 打赏
  • 举报
回复
		String s = "aba13az12bab";
List<String> ss = new ArrayList<String>();
for(String sss:s.replaceAll("[^0-9]", ",").split(",")){
if (sss.length()>0)
ss.add(sss);
}
System.out.print(ss);
huguang 2010-08-05
  • 打赏
  • 举报
回复
public static List<String> getDigit(String text) {
List<String> digitList = new ArrayList<String>();
Pattern p = Pattern.compile("[^0-9]");
Matcher m = p.matcher(text);
String result = m.replaceAll("");
for (int i = 0; i < result.length(); i++) {
digitList.add(result.substring(i, i+1));
}
return digitList;
}
猿敲月下码 2010-08-05
  • 打赏
  • 举报
回复
/**
* 从字符串文本中获得数字
*
* @param text
* @return
*/
public static List<String> getDigit(String text) {
List<String> digitList = new ArrayList<String>();
// 你的高见哈哈
// 把不是数字的变空
digitList.add(text.replaceAll("\\D", ""));
return digitList;
}
加载更多回复(5)

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧