lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1. 题目

读题

HJ92 在字符串中找出连续最长的数字串

 

 

考查点

 

2. 解法

思路

 

代码逻辑

 

具体实现

 

自行实现

public class HJ092 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String[] ans = getLongestDigitChar(sc.nextLine());
System.out.println(ans[0] + "," + ans[1]);
}
}

public static String[] getLongestDigitChar(String str) {
String[] ans = new String[2];

int max = 0;
StringBuffer sb = new StringBuffer();
int i = 0;
char[] chars = str.toCharArray();
while (i < chars.length) {
char c = chars[i];

if (!Character.isDigit(c)) {
i++;
continue;
}

int curCnt = 0;
while (i < chars.length && Character.isDigit(chars[i])) {
curCnt++;
i++;
}
String cur = str.substring(i - curCnt, i);
if (curCnt > max) {
max = curCnt;
sb = new StringBuffer(cur);
} else if (curCnt == max) {
sb.append(cur);
}
}
ans[0] = sb.toString();
ans[1] = max + "";
return ans;
}
}

3. 总结

posted on 2023-07-25 11:42  白露~  阅读(23)  评论(0编辑  收藏  举报