You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将(x;y;z)格式的字符串转换为三个独立整数?

实现分号分隔整数的解析与验证(基于字符串操作)

核心思路

完全基于字符串操作实现,步骤清晰直接:

  • 用分号分割输入字符串,先校验分割后的元素数量是否为3
  • 逐个验证每个分割出的片段是否为合法整数(支持正负)
  • 验证通过后转换为整数类型,输出指定格式结果

合法性校验要点

  • 输入分割后必须恰好得到3个非空片段
  • 每个片段需符合整数格式:正整数直接是纯数字,负整数以负号开头且后面为纯数字
  • 排除空片段(如;;、12;;34这类无效输入)

代码实现(Python)

def parse_three_integers(input_str):
    # 按分号分割输入字符串
    segments = input_str.split(';')
    
    # 校验片段数量是否为3
    if len(segments) != 3:
        return "输入格式错误:必须是3个分号分隔的整数"
    
    result = []
    for pos, seg in enumerate(segments, 1):
        # 去除片段前后空白,兼容用户可能输入的空格
        clean_seg = seg.strip()
        if not clean_seg:
            return f"输入格式错误:第{pos}个数字不能为空"
        
        # 验证是否为合法整数
        if clean_seg.startswith('-'):
            if not clean_seg[1:].isdigit():
                return f"输入格式错误:第{pos}个数字不是有效整数"
        else:
            if not clean_seg.isdigit():
                return f"输入格式错误:第{pos}个数字不是有效整数"
        
        # 转换为整数并存储
        result.append(int(clean_seg))
    
    # 返回格式化结果
    return f"Number1 = {result[0]}, Number2 = {result[1]}, Number3 = {result[2]}"

# 测试示例
print(parse_three_integers("22;33;55"))    # 输出:Number1 = 22, Number2 = 33, Number3 = 55
print(parse_three_integers("-10;20;-30")) # 输出:Number1 = -10, Number2 = 20, Number3 = -30
print(parse_three_integers(";;"))          # 输出:输入格式错误:第1个数字不能为空
print(parse_three_integers("12;abc;34"))   # 输出:输入格式错误:第2个数字不是有效整数

细节说明

  • 用split(';')做核心字符串分割,是最贴合需求的字符串操作方式
  • 加入strip()处理用户输入的冗余空格,提升场景容错性
  • 分情况验证正负整数,覆盖所有合法整数的格式
  • 逐段校验并返回具体错误信息,方便用户快速定位问题

内容的提问来源于stack exchange,提问作者Kurbamit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:15:42