do-exercise-最长的数字串

本文介绍如何通过遍历字符串并判断字符类型找到最长连续数字串,通过实例代码演示了如何在Java中实现这一功能,适用于字符串处理的基本算法理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

读入一个字符串str,输出字符串str中的连续最长的数字串;

输入描述

一个测试输入包含1个测试用例,一个字符串str,长度不超过255;

输出描述

在一行内输出str中里连续最长的数字串;

思路分析

对于一个字符串,无非包含2个部分,即字母和数字;输出字符串中连续最长的数字串,实际就是遍历字符串寻找数字字符;
可以尝试使用这样的思路来解决:定义2个空字符串,遍历原始输入的字符串,如果当前遍历到的字符是数字字符,就将该字符存储到第一个空字符串中,继续遍历最初输入的字符串,如果下一个字符依然是数字字符,继续存储到第一个字符串中,当下一个字符不再是数字字符时,就将当前得到的这个数字字符串整体存储带第二个字符串中,继续遍历字符串执行上述操作,当第一个字符串中的字符长度大于第二个字符串的长度时,更新第二个字符串的内容,最终第二个字符串中的结果即为最长的数字串;

题目链接:最长的数字串
下面是具体的代码实现:

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:最长的数字串
 * Date: 2022-11-11
 * Time: 0:21
 */
public class Main {
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        String str=scan.nextLine();
        String cur="";
        String ret="";
        int i=0;
        for (i=0;i<str.length();i++){
            char ch=str.charAt(i);
            if (ch>='0'&&ch<='9'){
                cur=cur+ch+"";
                if (cur.length()>ret.length()){
                    ret=cur;

                }
            }else{
                if (cur.length()>ret.length()){
                    ret=cur;
                }
                cur="";
            }
        }
        if (i==str.length()&&cur.length()>ret.length()){
            ret=cur;
        }
        System.out.println(ret);
    }
}

需要格外注意的是,最长的数字串在整个字符串末尾的情况,由于下标值在遍历过程中始终是小于字符串长度的,因此需要额外判断当下标值与字符串长度相等时,cur中的子串长度是否大于ret中的子串长度,在必要的情况下对ret的内容进行更新;

over!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值