您的位置:首页 > 其它

获取字符串中最长的数串

2015-10-16 16:05 309 查看
题目

思路

代码

运行结果

总结

题目

输入一段字符串,包含任意的ACII字符串。

输出字符串中长度最长的数字串,如果数字串长度相同,输出其中各个数字和最大的,如果和一样大,输入位置最前的。

如:输入”asdas213+2331-1221sds3321” 输出:2331

思路

用全局变量来存储最长数串的长度和它的和,然后遇见更大的就替换。

代码

package test;

import java.util.Scanner;

public class CharTest {
static int Sum = 0;
static int Length = 0;

public static void main(String agrs[]) {

String str = "";
Scanner sc = new Scanner(System.in);
str = sc.nextLine();
sc.close();
System.out.println(getMaxNumberString(str));

}

public static String getMaxNumberString(String str) {
String maxNumberString = "";
int sum = 0;
int length = 0;
StringBuilder number = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= '0' && c <= '9') {
number.append(c);
sum = sum + (int) c;
length = length + 1;
continue;
}
if (number.length() != 0) {
if (length > Length) {
Length = length;
Sum = sum;
maxNumberString = number.toString();
length = 0;
sum = 0;
number = new StringBuilder();
continue;
}

if (length == Length) {
if (sum > Sum) {
Sum = sum;
maxNumberString = number.toString();
length = 0;
sum = 0;
number = new StringBuilder();
continue;
}
}

}

}

return maxNumberString;

}
}


运行结果



总结

这是第一次用Markdown写博客,好不熟悉,写点简单,当作测试。欢迎一起讨论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: