天天看点

java 左侧切割字符串_java字符串切割、获取对应字符等

之前做过对字符切割等操作,现在也忘了差不多(忘了做笔记),所有再回头总结下。

Matcher(英文解释:匹配器)

常用方法:(我也只写了个别的案例用法)

find():尝试查找与该模式匹配的输入序列的的下一个子序列。          find(int start):重置此匹配器,然后尝试查找匹配该模式、从指定索引开始的输入序列的下一个子序列。          group():匹配成功返回的组          start():返回先前匹配的起始位置的索引。          end():返回最后匹配字符的索引加一。          matches():尝试将整个区域与模式匹配。匹配成功返回true          lookingAt():尝试将从区域开头开始的输入序列与该模式匹配。          replaceFirst():替换掉匹配的第一个子序列          replaceAll():替换掉匹配的全部子序列          appendReplacement:重要,下面重点说          appendTail(StringBuffer buf):重要,下面重点说

1、matches 用于字符串的验证

String str = "1234";

String regex = "\\d{4}";//  4个数字

System.out.println(str.matches(regex));

2、replaceAll 替换字符串

String str = "12a34A56DFG78";

String regex = "[a-zA-Z]+";//大小写字母       加号应是省略中间输出

System.out.println(str.replaceAll(regex,"-"));

3、split  字符串切割成数组

String str = "124A456A789";

String regex = "A";

String[] arr = str.split(regex);

for(String s:arr){  System.out.println(s);}

4、获取字符串 里对应类型进行合并

String input="12e34aa56g78";

StringBuilder numberStr=new StringBuilder();//创建

Matcher m=Pattern.compile("\\d+").matcher(input);

while(m.find()){//while 先判断 是成立  再输出里面的数据  find()尝试查找与该模式匹配的输入序列的的下一个子序列。

numberStr.append(m.group()+"/");

}

System.out.println("合并值:"+numberStr.toString());

其他

substring 函数

String strx="我是一名医生,在xxx工作。";

String jiequ=strx.substring(strx.indexOf("是"), strx.indexOf("工"));//indexOf()指定的字符串值在字符串中首次出现的位置

String jiequ2=strx.substring(5);//重索引5开始进行截取

String jiequ3=strx.substring(0, 7);//截取索引从0  到 7 区间值

System.out.println("jiequ:"+jiequ);

System.out.println("jiequ2:"+jiequ2);

System.out.println("jiequ3:"+jiequ3);

判断字符串是否包含某值    contains

String str = "我你他\"";

boolean status = str.contains("他");//主要特殊字符需要转意  如     "  --> str.contains("\"")

if(status){

System.out.println("包含");

}else{

System.out.println("不包含");

}

这些也能解决大部分问题了