java输入一个字符串,打印出其中所有的连续数字

来源:百度知道 编辑:UC知道 时间:2024/06/04 07:15:52
/**
* 输入一个字符串,打印出其中所有的连续数字
*
* @author Yang
* @version $Revision: 1.2 $(版本号) $Date: 2007/11/29 09:55:55 $
*/
package com.yang;

import java.util.Scanner;

public class ContinuousNumbers {

public static void main(String[] args) {
System.out.println("输入一个字符串:");
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
String continuousNumbers = "";
System.out.println("打印出其中所有的连续数字:");
for (int i = 0; i < line.length(); i++) {
if (Character.isDigit(line.charAt(i))) {

用“+”号来做字符串的连接效率不高,以后避免使用这个操作,关键是这个程序本来就是要打印连续数字。
这些数字在输入串中本身就是连接好的,你的程序先强行把字符串分开,又强行把它们连在一起,效率太低!

continuousNumbers += line.charAt(i);
} else {

一般我们不这么检查空字符串,用if( continuousNumbers.length() < 1 )要直观的多!

if

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegEX
{
public static void main(String[] args)
{
String src = "aa341 34134 :psadf 13 ";
String regex = "\\d+";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(src);
while (m.find())
{
String s = m.group();
System.out.println(s);
}
}
}