java统计输入字符串中连续数字的最长长度 如 ffg1759d45的结果为四

如题所述

可以用正则表达式
//输入一个字符串
String str = "ffg1759d45";
//将字符串之中除去数字的都去掉
str = str.replaceAll("[^0-9]"," ");//此时结果为: 1759 45
//将两头多余的空格去除
str = str.trim();//此时结果为:1759 45
//将字符串分割为多个数字
String[] arr = str.split(" ");//此时结果为{"1759","45"}
//求数组之中最长的那个元素
int length = 0;
for(int i=0;i<arr.length;i++){
if(arr[i].length()<=length)continue;
length = arr[i].length();
}
System.out.println(length);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-03-29

import java.util.Scanner;


public class CharNum {

public static void main(String[] args){

new Count().print();

}


}

class Count{

Scanner sc = new Scanner(System.in);

String str = sc.next();

char[] ch = str.toCharArray();

void print(){

int j=0;

for(int i=0; i<ch.length; i++){

if(ch[i]>47&&ch[i]<59){

j++;

}

else{

j=0;

}

}

System.out.println("最大连续数字长度为:"+j);

}

}


第2个回答  2016-03-29
Scanner scanner = new Scanner(System.in);
System.out.println("输入字符串:");
String str = scanner.next();
int len = str.length();
// 连续数字最大值
int maxInt = 0;
// 连续数字数目
int num = 0;
for (int i = 0; i < len; i++) {
char ch = str.charAt(i);
// 判断字符是数字
if (ch >= 48 && ch <= 57) {
num++;
if (num > maxInt) {
maxInt = num;
}
} else {
num = 0;
}
}
System.out.println("输入字符串连续数字最大值:" + maxInt);
相似回答