你可以这要做:把字符串中的不是英文的字符替换为"" 这样就会得到一个新的字符串 这个新的字符串就是你想要的 代码:public static void getEng(String s){ return s.replaceAll("[a-zA-Z]","");}
public class asdf { public static void main(String[] args) { String str = "中文asd"; StringBuffer sb = new StringBuffer(); char[] c = str.toCharArray(); for(int i = 0; i < c.length; i++) { if(c[i] >=65 && c[i] <= 122) { sb.append(c[i]); } } String str2 = sb.toString(); System.out.println(str2); }}if(c[i] >=65 && c[i] <= 122) 这里的65 和 122是‘A’和‘z’的asciI码,这个范围包含了全部的英文字母即A~Z和a~z
String string ="abc123";StringBuffer result = new StringBuffer();for(int i = 0;i<string.length();i++){char a = string.charAt(i);if((((int)a)>=65&&((int)a)<=90)||(((int)a)>=97&&((int)a)<=122)){result.append(a);}}System.out.println(result.toString());
substring(int begin,int end)这个函数就可以满足你的要求abc123.substring(0,3) 追问 这样不行,我的是动态的那数据长度会变的 追答 str = Regex.Replace(str, "\\d", ""); 好像是这个 我现在没环境试