牛客网输入处理

牛客网

相信在牛客网上做题、笔试的同学,遇到一个比较大的问题就是如何处理输入输出。

例如,输入为

[[1,2],[3,4],[5,6]]

将此字符串转为整数数组:

		public static int[] stringToArrays(String str){
        str = str.replaceAll("\\D"," ").trim();		//trim()方法去除字符串首尾的空字符
        //str = str.replaceAll("[^0-9]"," ").trim();
        String[] strings = str.split("\\s+");			//按一个或多个空字符切分字符串
        int[] nums = new int[strings.length];
        for (int i = 0; i < strings.length; i++){
            nums[i] = Integer.parseInt(strings[i]);
        }
        return nums;
    }

正则表达式

  1. [] 代表匹配中括号中其中任一个字符。如:

    Strign str = "[abc]"; //匹配a或b或c中的任意一个字符
    

    配合 - 使用:

    Strign str = "[a-z]" ; //匹配从a到z的任意一个字符
    
  2. ^ 在开头则表示匹配字符串开始位置,例如:

    String str = "abc";
    String regix = "^a[a-z]*";
    System.out.println(Pattern.matches(regix, str)); //输出为true
    

    ^[] 里面则表示“非”,例如

    String str = "[^0-9]"; //匹配非数字的字符
    

    对应的,匹配以某个字符结尾的字符串以==$== ,例如:

    String str = "abc";
    String regix = "^a[a-z]c$"; //以a开头,中间字符为a到z中的任意一个,结尾为c的字符串
    System.out.println(Pattern.matches(regix, str)); //输出为true
    
  3. . 表示任意字符。

  4. ? 表示出现0或1次。

    + 表示出现1次或多次。

    * 表示出现任意次数(0次,1次,多次)。

  5. {n} 表示出现n次。

    {n,m} 表示出现n~m次。

    {n,} 表示n次或n次以上。

  6. | 表示或的意思,例如: A|B,匹配A或B。

  7. 下面的匹配规则在java使用的过程中,需要多加一个转移字符\:

    • \d 表示匹配数字。
    • \D 表示匹配非数字。
    • \s 表示匹配由空字符组成的字符串(一个或多个" ")。
    • \S 表示由非空字符组成的字符串,相当于[^\s]
    • \w 表示匹配字母、数字、下划线,相当于[a-zA-Z0-9_]
    • \W 表示匹配不是由字母、数字、下划线组成的字符。

你可能感兴趣的:(笔试,java)