• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
isuning
博客园    首页    新随笔    联系   管理    订阅  订阅
【Java源码分析】String 方法 startsWith

startsWith()

startsWith() 方法用于检测字符串是否以指定的前缀开始。

语法
public boolean startsWith(String prefix, int toffset)

或

public boolean startsWith(String prefix)
参数
  • prefix – 前缀。
  • toffset – 字符串中开始查找的位置。
返回值

如果字符串以指定的前缀开始,则返回 true;否则返回 false。

实例
public class Test {
    public static void main(String args[]) {
        String Str = new String("www.hello.com");

        System.out.print("返回值 :" );
        System.out.println(Str.startsWith("www") );

        System.out.print("返回值 :" );
        System.out.println(Str.startsWith("hello") );

        System.out.print("返回值 :" );
        System.out.println(Str.startsWith("hello", 4) );
    }
    }
}

以上程序执行结果为:

返回值 :true
返回值 :false
返回值 :true
源码
  public boolean startsWith(String prefix) {
        return startsWith(prefix, 0);//偏移默认0
    }
    
public boolean startsWith(String prefix, int toffset) {
        char ta[] = value;//源字符串数组
        int to = toffset;
        char pa[] = prefix.value;//目标字符串数组
        int po = 0;
        int pc = prefix.value.length;
        //如果偏移位置小于0或者大于两字符串长度之差
        if ((toffset < 0) || (toffset > value.length - pc)) {
            return false;
        }
        while (--pc >= 0) {//目标字符串长度递减
            if (ta[to++] != pa[po++]) {//从偏移位置比较字符
                return false;
            }
        }
        return true;
    }

比较字符数组

posted on 2022-05-01 22:16  吕布辕门  阅读(56)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3