获取字符串中最长的数串

来源:互联网 发布:网络有时候不稳定会断 编辑:程序博客网 时间:2024/06/05 06:20

  • 题目
  • 思路
  • 代码
  • 运行结果
  • 总结

题目

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

0 0
原创粉丝点击