java提取字符串中字母_java截取字符串中的字母数字

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Cut {

// 1、 正则表达式

// 利用正则表达式判断字符串中是否都为字母和数字

public static Boolean regexIsWordOrNumber(String str) {

return str.matches("[^A-Za-z0-9]");

}

// 利用正则表达式提取字符中的字母和数字

public static String regexCut(String str) {

return str.replaceAll("[^A-Za-z0-9]", "");

}

// 2、 ASCII

// 利用ASCII判断字符串中是否都为字母和数字

public static Boolean ASCIIIsWordOrNumber(String str) {

for(int i=0;i

if( (str.charAt(i)>=48 && str.charAt(i)<=57) || (str.charAt(i)>=65 && str.charAt(i)<=90) || (str.charAt(i)>=97 && str.charAt(i)<=122) ){

i++;

continue;

}

return false;

}

return true;

}

// 利用正则表达式提取字符中的字母和数字

public static String ASCIICut(String str) {

String strCut="";

for(int i=0;i

//   方法一:

/*if( (str.charAt(i)>=48 && str.charAt(i)<=57) || (str.charAt(i)>=65 && str.charAt(i)<=90) || (str.charAt(i)>=97 && str.charAt(i)<=122) ){

strCut+=str.charAt(i);

}*/

//   方法二:数字部分可以用java自带函数判断一个字符是否是数字

if( Character.isDigit(str.charAt(i)) || (str.charAt(i)>=65 && str.charAt(i)<=90) || (str.charAt(i)>=97 && str.charAt(i)<=122) ){

strCut+=str.charAt(i);

}

}

return strCut;

}

// 3、 截取连续部分(字母等)

// 3.1、 截取连续的数字  【读取字符串中第一个连续的字符串,不包含后面不连续的数字】

public static String getNumbers(String content) {

Pattern pattern = Pattern.compile("\\d+");   //英文字母数字为 "[A-Za-z0-9]+"

Matcher matcher = pattern.matcher(content);

while (matcher.find()) {

return matcher.group(0);

}

return "";

}

// 3.2、 截取连续的非数字  【读取字符串中第一个连续的字符串,不包含后面不连续的非数字】

public static String getNotNumbers(String content) {

Pattern pattern = Pattern.compile("\\D+");

Matcher matcher = pattern.matcher(content);

while (matcher.find()) {

return matcher.group(0);

}

return "";

}

/* 测试部分 */

public static void main(String[] args) {

String str = "中华人民共和国@AZ^123#az%456Mn*789";

// 1、正则

if(!Cut.regexIsWordOrNumber(str))//正则判断不全是字母和数字

System.out.println("1---"+Cut.regexCut(str));

else

System.out.println("1---"+str);

// 2、 ASCII

if(!Cut.ASCIIIsWordOrNumber(str))//正则判断不全是字母和数字

System.out.println("2---"+Cut.ASCIICut(str));

else

System.out.println("2---"+str);

// 3、截取连续部分

str="99AZ123中国99az";

System.out.println("3.1 第一组连续数字字符串---"+Cut.getNumbers(str));

System.out.println("3.2 第一组连续非数字字符串---"+Cut.getNotNumbers(str));

}

}

你可能感兴趣的:(java提取字符串中字母)