获取字符串中最长的数串
文章目录
#题目
输入一段字符串,包含任意的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写博客,好不熟悉,写点简单,当作测试。欢迎一起讨论。