String常用方法2

boolean endsWith(String suffix)		测试此字符串是否以指定的后缀结束
boolean startsWith(String prefix)	测试此字符串是否以指定的前缀开始
boolean startsWith(String prefix , int toffset)	测试此字符串从指定索引开始的子字符串是否以指定前缀开始

boolean contains(CharSequence s)	当且仅当此字符串包含指定的char值序列时 返回true
int indexOf(String str)		返回指定子字符串在此字符串中第一次出现处的索引
int indexOf(String str, int fromIndex)		返回指定子字符串在此字符串中第一次出现处的索引 从指定的索引开始
int lastIndexOf(String str)		返回指定子字符串在此字符串中最右边出现处的索引
int lastIndexOf(String str, int fromIndex)		返回指定子字符串在此字符串中最后一次出现的处的索引 从指定的索引开始反向搜索

注意:indexOf和lastIndexOf方法如果未找到都是返回-1
@Test
public void test3(){
    //boolean endsWith(String suffix)		测试此字符串是否以指定的后缀结束
    String str1="helloworld";
    boolean b1 = str1.endsWith("ld");
    System.out.println(b1);     //true

    //boolean startsWith(String prefix)	测试此字符串是否以指定的前缀开始
    boolean b2 = str1.startsWith("He");
    System.out.println(b2);     //false 大小写敏感

    //boolean startsWith(String prefix , int toffset)	测试此字符串从指定索引开始的子字符串是否以指定前缀开始
    boolean b3 = str1.startsWith("ll", 2);
    System.out.println(b3);     //true

    //boolean contains(CharSequence s)	当且仅当此字符串包含指定的char值序列时 返回true
    String str2="wo";
    System.out.println(str1.contains(str2));    //true str1中是否包含str2 大小写敏感

    //int indexOf(String str)		返回指定子字符串在此字符串中第一次出现处的索引
    System.out.println(str1.indexOf("lo"));     //3
    System.out.println(str1.indexOf("lol"));    //没找到 返回-1

    //int indexOf(String str, int fromIndex)		返回指定子字符串在此字符串中第一次出现处的索引 从指定的索引开始
    System.out.println(str1.indexOf("lo",5));   //从5位索引开始找 没找到返回-1
    System.out.println(str1.indexOf("ld",5));   //找到了 返回整个string的开始位索引  返回8

    //int lastIndexOf(String str)		返回指定子字符串在此字符串中最右边出现处的索引
    String str3="hellorworld";
    System.out.println(str3.lastIndexOf("or")); //返回整体的索引 7

    //int lastIndexOf(String str, int fromIndex)		返回指定子字符串在此字符串中最后一次出现的处的索引 从指定的索引开始反向搜索
    System.out.println(str3.lastIndexOf("or",6)); //从指定位置向左开始找 返回4

    //什么情况下 indexOf(str)和lastIndexOf(str)返回值相同
    //要么只有一个字符 要么都没有找到
}
String replace(char oldChar,char newChar)		返回一个新的字符串 它是通过newChar替换此字符串中出现的所有ordChar得到的
String replace(CharSequence target, CharSequence repalcement)	使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串
String replaceAll(String regex,String replacement)		使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串
String replaceFirst(String regex, String replacement)	使用给定的replacement替换此字符串匹配给定的正则表达式的第一个子字符串
boolean matches(String regex)	告知此字符串是否匹配给定的正则表达式
String[] split(String regex)	根据给定正则表达式的匹配拆分此字符串
Stirng[] split(String regex, int limit)	根据匹配给定的正则表达式来拆分此字符串 最多不超过limit个 如果超过了 剩下的全部都放到最后一个元素中
@Test
public void test04(){
    //String replace(char oldChar,char newChar)		返回一个新的字符串 它是通过newChar替换此字符串中出现的所有ordChar得到的
    String str1="北京尚硅谷教育北京";
    String replace = str1.replace('北', '东');
    System.out.println(replace);    //东京尚硅谷教育东京

    //String replace(CharSequence target, CharSequence repalcement)	使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串
    String replace1 = str1.replace("北京", "上海");
    System.out.println(replace1);   //上海尚硅谷教育上海

    //String replaceAll(String regex,String replacement)		使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串
    String str2="12hello34world5java7891mysql456";
    String str3=str2.replaceAll("\\d+",",").replaceAll("^,|,$","");
    //\\d+表示一个或者多个数字替换成,   "^,|,$" 开头或者结尾有, 替换为空
    System.out.println(str3);   //hello,world,java,mysql
    //String replaceFirst(String regex, String replacement)	使用给定的replacement替换此字符串匹配给定的正则表达式的第一个子字符串

    //boolean matches(String regex)	告知此字符串是否匹配给定的正则表达式
    String str="12345";
    boolean matches = str.matches("\\d+");  //判断一个或者多个数字
    System.out.println(matches);    //true

    String tel="0571-4534289";
    boolean matches1 = tel.matches("0571-\\d{7,8}");    //0571-开头 7位或者8位数字
    System.out.println(matches1);   //true

    //String[] split(String regex)	根据给定正则表达式的匹配拆分此字符串
    str="hello|world|java";
    String[] strs=str.split("\\|");
    for(int i=0;i<strs.length;i++){
        System.out.println(strs[i]);
    }

    System.out.println();

    str="hello.world.java";
    String[] strs2=str.split("\\.");
    for(int i=0;i<strs2.length;i++){
        System.out.println(strs2[i]);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值