• Java String 中的一些函数与正则的结合使用


    首先正则表达式在处理字符串问题时,真的非常强大。

    正则可以帮助我们处理字符串的: 匹配, 选择, 编辑, 验证等问题。

    正则中"\"表示插入一个""

    这里仅是记录String 与 正则的结合:

    1:验证:

    import java.util.Arrays;
    import java.util.Scanner;
    
    
    public class Main {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner cin = new Scanner(System.in);
    		
    		System.out.println("-1234".matches("-?\d+")); //可能以-开头以数字结尾的
    		System.out.println("5678".matches("-?\d+"));
    		System.out.println("+1234".matches("-?\d+"));
    		System.out.println("+2344".matches("(-|\+)?\d+"));//可能以-或者+开头以数字结尾的
    	}
    }
    输出:

    true
    true
    false
    true

      

    2:分割字符串:

    结合split进行分割:

    import java.util.Arrays;
    import java.util.Scanner;
    
    
    public class Main {
    	public static String s = "I   am a good student... haha";
    	
    	public static void main(String[] args) {
    		//以空格进行分割,返回一个list
    		System.out.println( Arrays.asList(s.split(" ")) );
    		//以非字符进行分割 W表示一个 W+表示后边跟任意个
    		System.out.println( Arrays.asList(s.split("\W+")));
    		//以以g开头后边跟字符的进行分割
    		System.out.println( Arrays.asList(s.split("g\w+")));
    	}
    }
    
    输出:
    [I, , , am, a, good, student..., haha]
    [I, am, a, good, student, haha]
    [I   am a ,  student... haha]
    

     

    4:替换:

    import java.util.Arrays;
    import java.util.Scanner;
    
    
    public class Main {
    	public static String s = "I   am a good student... haha good";
    	
    	public static void main(String[] args) {
    		 System.out.println(s.replaceFirst("g\w+", "very good"));
    		 System.out.println(s.replaceAll("g\w+", "very good"));
    	}
    }
    
    输出:
    I   am a very good student... haha good
    I   am a very good student... haha very good
    

      

    然后发现之前自己在oj上的一道简单的题目Java几行代码就解决了:

    SDUT 2192 http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2192

    import java.util.Arrays;  
    import java.util.Scanner;  
      
      
    public class Main {  
      
        public static void main(String[] args) {  
            // TODO Auto-generated method stub  
            Scanner cin = new Scanner(System.in);  
            int n = cin.nextInt();  
            String s = null;  
            for (int i = 0; i < n; ++i) {  
                s = cin.next();  
                System.out.println(s.replaceAll("cRazY", "CrAZy").replaceAll("CraZy", "cRAzY"));  
            }  
        }  
      
    }  
       
    

      

  • 相关阅读:
    [置顶] 算法设计基础
    .net 多线程学习
    如何获得Repeater中的列
    npoi导出excel
    字符串的格式化问题
    用线程修改页面中的值(一)
    正则表达式的验证数值验证
    .net 线程更新页面中的值(方法二)
    .net 线程更新页面中的值(方法一)
    字符串的分割
  • 原文地址:https://www.cnblogs.com/E-star/p/3432031.html
Copyright © 2020-2023  润新知