Java如何通过两个索引获取子字符串?示例需求及实现疑问
实现索引截取子串的Java方案
嘿,好问题!Java里其实已经有现成的方法能完美满足你的需求,而且比你设想的getStringBetweenIndex更常用——就是String类原生的substring()方法。
直接使用substring()实现
substring(int beginIndex, int endIndex)方法的逻辑正好匹配你的需求:
beginIndex:子串的起始索引(包含该位置的字符)endIndex:子串的结束索引(不包含该位置的字符)
你的目标是从Hello, world!中获取Hello,对应的起始索引是0,结束索引是5(因为Hello占了0-4共5个字符),直接调用这个方法就能得到想要的结果。
修改后的代码如下:
package com.example; public class Example { public static void main(String[] args) { String hello = "Hello, world!"; // 截取索引0(包含)到5(不包含)的子串 System.out.println(hello.substring(0, 5)); } }
运行这段代码,输出正好是Hello,完全符合你的预期。
自定义你想要的方法名(可选)
如果你特别偏好getStringBetweenIndex这个更直观的方法名,也可以自己封装一个静态工具方法:
package com.example; public class StringUtils { // 自定义方法,本质上调用substring public static String getStringBetweenIndex(String str, int start, int end) { // 可以在这里添加参数合法性校验,比如start不能小于0,end不能大于str.length()等 return str.substring(start, end); } }
然后在主类中调用:
package com.example; public class Example { public static void main(String[] args) { String hello = "Hello, world!"; System.out.println(StringUtils.getStringBetweenIndex(hello, 0, 5)); } }
这样就能实现你设想的调用方式啦。
需要注意的是,Java标准库中并没有getStringBetweenIndex这个内置方法,所以直接像你写的那样调用会编译报错,要么用原生的substring,要么自己封装工具方法~
内容的提问来源于stack exchange,提问作者Muhammet DÜLGER
相关产品推荐
相关产品推荐

