java 取出字符串中的英文?

例如:abc123 我只要:abc
正则表达式怎么写呢?

你可以这要做:把字符串中的不是英文的字符替换为"" 这样就会得到一个新的字符串
这个新的字符串就是你想要的

代码:
public static void getEng(String s){
return s.replaceAll("[a-zA-Z]","");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-02
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
第2个回答  推荐于2016-08-20
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());本回答被提问者采纳
第3个回答  2012-11-02
substring(int begin,int end)这个函数就可以满足你的要求
abc123.substring(0,3)追问

这样不行,我的是动态的那数据长度会变的

追答

str = Regex.Replace(str, "\\d", ""); 好像是这个 我现在没环境试

第4个回答  2012-11-02
正则表达式不会...
不过可以先用toCharArray 转换成char数组 然后根据askii码来判断是不是字符之类的.....
相似回答