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
相关产品推荐
相关产品推荐

