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

Java不同输入场景下的字符串拆分:按要求提取专业、大学及城市信息

实现思路与方案

1. 关于substring的疑问解答

substring完全可以配合动态获取的索引使用,不需要提前硬编码固定索引值。你只需要先通过indexOf()方法动态定位到冒号、逗号的位置,再把拿到的位置参数传给substring即可,完全适配输入内容长度变化的场景,不需要改用其他方法。

2. 分步实现代码

符合作业要求的完整实现代码如下:

public class StringExtractDemo {
    public static void main(String[] args) {
        // 输入字符串
        String input = "computer science: harvard university, cambridge (EXAMPLE)";
        
        // 第一步:定位冒号和逗号的位置
        int colonIndex = input.indexOf(":");
        int commaIndex = input.indexOf(",");
        
        // 第二步:提取三个内容并存入变量
        String major = input.substring(0, colonIndex).trim();
        String university = input.substring(colonIndex + 1, commaIndex).trim();
        // 提取城市时去掉末尾的(EXAMPLE)标记,若无该标记可直接写为input.substring(commaIndex + 1).trim()
        String city = input.substring(commaIndex + 1, input.indexOf("(")).trim();
        
        // 第三步:逆序输出,末尾追加换行
        System.out.println(city);
        System.out.println(university);
        System.out.println(major);
    }
}

3. 运行结果说明

上述代码输出结果为:

cambridge
harvard university
computer science

indexOf()方法会返回指定字符在字符串中第一次出现的下标,属于动态计算值,只要输入格式符合「专业: 大学, 城市」的规则,不管三个字段的长度怎么变化,都能拿到正确的分割位置,不存在输入不固定就无法使用substring的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:36:04