从字符串中截取出所有汉字 请教大家,已知一个字符串,中有汉字,字母,数字和特殊字符等,如何从这个字符串中取出所有汉字呢。谢谢大家! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 >"~" 就是汉字<"~" 就是字符 我也想用正则表达式,可是汉字如何用正则表达式呢,在正则里有POSIX 字符类(仅 US-ASCII),因为汉字是非ascii的,可是这个字符类不会用呀,我刚想到了另外的一个方法,可是不太好。 public static void main(String[] args) { String str="sa我e3爱 你r#|c"; String newStr=""; for(int i=0;i<str.length();i++){ if(Character.isLetter((str.charAt(i)))&&(!Character.isLowerCase((str.charAt(i))))&&(!Character.isUpperCase((str.charAt(i))))){ newStr=newStr.concat(str.substring(i,i+1)); } } System.out.println("new :"+newStr); }这样取letter就可以把汉字和字母全取出来,再去掉字母。这样总觉得有BUG public class AB { public static void main(String[] args) { String str = "sa汉字e3中国人r#|c"; String newStr = ""; for(int j = 0;j < str.length();j++){ newStr = str.substring(j,j+1); boolean cc = java.util.regex.Pattern.matches("[\u4E00-\u9FA5]", newStr); if(cc){ System.out.print(newStr); } } }} public static void main(String[] args) { String str = "sa汉字e3中国人r#|c"; System.out.println(str.replaceAll("[^\u4E00-\u9FA5]", ""));} class SteingDemo{ public void getString(String s){ int a=s.length(); String ss=""; for(int i=0;i<a;i++){ byte[] by=s.charAt(i).getBytes(); if(by.length==2){ ss+=s.indexOf(i); System.out.println("输出汉字"+s.charAt(i)) }else{ continu; } if(i=a-1) return ss; } } String text="我shi快乐的汉字?"; char[] textChar=text.toCharArray(); for(int i=0;i<textChar.length;i++){ int nc=(char)textChar[i]; if(nc>=0x4e00&&nc<=0x9fa5) System.out.println("我是快乐的汉字:"+textChar[i]); }呵呵,同意5楼的 多了个(char) 关于二叉树的性质 在线等 弱弱问题 随机产生 吸血鬼数字 谁能给个API测试的代码,最好复杂点,或者相关文档也好,java的 100分 CSDN,怎么让这种垃圾当版主? jpanel中图片怎样放大缩小呢? 数据库查询!在线! 用\t制表符替换空格的问题 jbuider怎么这样 String与StringBuffer,既然Stringbuffer那么好,为什么JDK要保留String,面试题,高手进 自己写了下迅雷面试题中的一道题
<"~" 就是字符
public static void main(String[] args) {
String str="sa我e3爱 你r#|c";
String newStr="";
for(int i=0;i<str.length();i++){
if(Character.isLetter((str.charAt(i)))&&(!Character.isLowerCase((str.charAt(i))))&&(!Character.isUpperCase((str.charAt(i))))){
newStr=newStr.concat(str.substring(i,i+1));
}
}
System.out.println("new :"+newStr);
}
这样取letter就可以把汉字和字母全取出来,再去掉字母。这样总觉得有BUG
public static void main(String[] args) {
String str = "sa汉字e3中国人r#|c";
String newStr = "";
for(int j = 0;j < str.length();j++){
newStr = str.substring(j,j+1);
boolean cc = java.util.regex.Pattern.matches("[\u4E00-\u9FA5]", newStr);
if(cc){
System.out.print(newStr);
}
}
}
}
public static void main(String[] args) {
String str = "sa汉字e3中国人r#|c";
System.out.println(str.replaceAll("[^\u4E00-\u9FA5]", ""));
}
public void getString(String s){
int a=s.length();
String ss="";
for(int i=0;i<a;i++){
byte[] by=s.charAt(i).getBytes();
if(by.length==2){
ss+=s.indexOf(i);
System.out.println("输出汉字"+s.charAt(i))
}else{
continu;
}
if(i=a-1)
return ss;
}
}
char[] textChar=text.toCharArray();
for(int i=0;i<textChar.length;i++){
int nc=(char)textChar[i];
if(nc>=0x4e00&&nc<=0x9fa5)
System.out.println("我是快乐的汉字:"+textChar[i]);
}
呵呵,同意5楼的