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("不包含");
	  }

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

你可能感兴趣的:(java,基础)