获取字符串中最长的数串

文章目录


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