//正则匹配表达式 String regExOne = "^[1-9]{1}$"; String regExTow = "^[0-9]{2}$"; Pattern patternOne = Pattern.compile(regExOne); Pattern patternTow = Pattern.compile(regExTow); List<String> nameList = new ArrayList<>(); nameList.add("7号桩"); nameList.add("9号桩"); nameList.add("1号桩"); nameList.add("3号桩"); nameList.add("11号桩"); nameList.add("11号桩"); nameList.add("8号桩"); nameList.add("2号桩"); nameList.add("4号桩"); nameList.add("6号桩"); //建立map设置每一个元素的位置对于的值 Map<String,Integer> map = new HashMap<>(); //截取后的数据数字数组 int[] arrs = new int[nameList.size()]; for(int i=0,size = nameList.size();i<size;i++){ String name = nameList.get(i); //取出第第一位,验证是不是数字 String nameIndexOne = name.substring(0,1); //验证是否存在名称中是否存在数字 Matcher matcherIndexOne = patternOne.matcher(nameIndexOne); boolean indexOne = matcherIndexOne.find(); if(indexOne){ //取出第第二位,验证是不是数字 String nameIndexTow = name.substring(0,2); Matcher matcherIndexTow = patternTow.matcher(nameIndexTow); boolean indexTow = matcherIndexTow.find(); if(indexTow){ map.put(nameIndexTow,i); arrs[i] = Integer.parseInt(nameIndexTow); }else{ map.put(nameIndexOne,i); arrs[i] = Integer.parseInt(nameIndexOne); } } } Arrays.sort(arrs); for(int j=0,size=arrs.length;j<size;j++){ System.out.print(arrs[i]); }
// 判断一个字符串是否含有数字 public boolean HasDigit(String content) { boolean flag = false; Pattern p = Pattern.compile(".*\\d+.*"); Matcher m = p.matcher(content); if (m.matches()) { flag = true; } return flag; }
//判断一个字符是否都为数字 public static boolean isDigit(String strNum){ return strNum.matches("[0-9]{1,}"); } // 判断一个字符串是否都为数字 public static boolean isDigit2(String strNum) { Pattern pattern = Pattern.compile("[0-9]{1,}"); Matcher matcher = pattern.matcher((CharSequence) strNum); return matcher.matches(); }
//截取数字 【读取字符串中第一个连续的字符串,不包含后面不连续的数字】 public static String getNumbers(String content) { Pattern pattern = Pattern.compile("\\d+"); Matcher matcher = pattern.matcher(content); while (matcher.find()) { return matcher.group(0); } return ""; } // 截取非数字 public static String splitNotNumber(String content) { Pattern pattern = Pattern.compile("\\D+"); Matcher matcher = pattern.matcher(content); while (matcher.find()) { return matcher.group(0); } return ""; }
用java自带函数 //判断一个字符串是否为数字 public static boolean isNumeric(String str){ for (int i = str.length(); --i>=0;) { if(!Character.isDigit(str.charAt(i))){ return false; } } return true; }
//判断一个字符串是否为数字 用ASCII码 public static boolean isNumeric3(String str){ for(int i=str.length(); --i>=0;){ char c=str.charAt(i); if (c < 48 || c > 57) return false; } return true; }
//正则 public static boolean isNumeric2(String str){ Pattern pattern=Pattern.compile("[0-9]*"); return pattern.matcher(str).matches(); }