Java:startsWith()

startsWith() 是 Java 中 String 类的一个方法,用于检查字符串是否以指定的前缀开始。该方法有两种重载形式,能够满足不同的匹配需求。

1、方法定义

单参数形式‌:boolean startsWith(String prefix)
检查整个字符串是否以指定的前缀开始。

双参数形式‌:boolean startsWith(String prefix, int toffset)
从指定的索引位置(索引位置从0开始)开始检查字符串是否以指定的前缀开始。

2、使用示例

public class StartsWithExample {
    public static void main(String[] args) {
        String str = "hello world";
        
        // 检查字符串是否以 "hel" 开始
        boolean startsWithHel = str.startsWith("hel");
        System.out.println("字符串是否以 'hel' 开始:" + startsWithHel); // 输出 true
        
        // 检查字符串是否以 "world" 开始
        boolean startsWithWorld = str.startsWith("world");
        System.out.println("字符串是否以 'world' 开始:" + startsWithWorld); // 输出 false
        
        // 从指定位置开始检查
        boolean startsWithWorldAt7 = str.startsWith("world", 6);
        System.out.println("从索引6开始是否以 'world' 开始:" + startsWithWorldAt7); // 输出 true
    }
}

运行结果说明

  • str.startsWith("hel") 返回 true,因为字符串确实以 "hel" 开头
  • str.startsWith("world") 返回 false,因为整个字符串不以 "world" 开头
  • str.startsWith("world", 6) 返回 true,因为从索引位置6开始的子字符串以 "world" 开头

与其他方法的区别

与 JavaScript 中的类似方法相比,Java 的 startsWith() 功能更为专注,专门用于检查字符串前缀,而 indexOf() 方法用于查找子字符串的位置,返回的是索引值而非布尔值。

该方法在实际编程中常用于文件名检查、URL 协议验证、命令识别等场景。

Cannot invoke "String.startsWith(String)" because the return value of "com.anft.common.persistence.auto.model.MemberInfo.getMobile()" is null at com.anft.modules.business.trans.support.fraud.checker.VirtualNumChecker.lambda$check$0(VirtualNumChecker.java:50) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) at com.anft.modules.business.trans.support.fraud.checker.VirtualNumChecker.check(VirtualNumChecker.java:50) at com.anft.modules.business.trans.service.BizTransCheckService.checkFraudulence(BizTransCheckService.java:178) at com.anft.modules.business.trans.service.BizTransCheckService.checkSuspicion(BizTransCheckService.java:129) at com.anft.modules.business.trans.facade.base.BizTransCheckApi.checkSuspicion(BizTransCheckApi.java:60) at com.anft.cse.app.biz.service.transaction.impl.TransactionServiceImpl.checkTransSuspicions(TransactionServiceImpl.java:71) at com.anft.cse.app.facade.api.trans.TransactionController.addTransWitchCheck(TransactionController.java:202) at jdk.internal.reflect.GeneratedMethodAccessor1221.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.
08-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值