这个应该怎么办?把字符串中的汉字部分全部提取出来? 一些字符串如“123 是发达大”、“215 结合客户交互和好”其中汉字多少不定,有类似substring()之类的函数吗,想把里面的汉字部分全部提取出来? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 3 是发达大123有个sadf这样子要提出哪些汉字 如果你的字符串是固定格式: 数值 + 空格 + 汉字 的话,可以用正则表达式:String exp = "123 是发达大";String result = exp.replace("\\d*\\s*",""); 1. 可以用正则表达式匹配中文 [\u4e00-\u9fa5]2. 字符对应的编码值在,19968和40869之间的为中文 string name = "nihao高峰"; int currentcode=-1; for (int i = 0; i < name.Length; i++) { currentcode=(int)name[i]; if (currentcode >19968&¤tcode < 40869) { Console.WriteLine(name[i].ToString()); } } 类似这样去拿就可以解决问题了 System.Text.RegularExpressions.MatchCollection mc= System.Text.RegularExpressions.Regex.Matches("123 是发达大 215 结合客户交互和好", @"[\u4e00-\u9fa5]");System.Collections.IEnumerator list= mc.GetEnumerator();string result="";while(list.MoveNext()) result+=list.Current.ToString(); 去掉所有ascii字符剩下就是汉字 我这个用java写的,给你参考一下。import java.io.*;//先在编译的当前文件夹下建一个文本,里面写汉字,//文件名为a.txt。public class ReadTest{public static void main(String[] args){ DataInputStream din=null; try{ //定义一个输入流,把当前文件夹下的a.txt里的内容 //以GB2312字符集读出 InputStreamReader is=new InputStreamReader(new FileInputStream("a.txt"),"GB2312");String str1="";String str2="";//循环度每一个字符,并连接在一个字符串str1上int i=-1;while((i=is.read())!=-1) { char m=(char)i; str2=str2.valueOf(m); str1=str1+str2;}//对字符串给出一些简单的操作str1=str1.replaceAll(","," ");//把所有逗号替换为空格str1=str1.replaceAll("。"," ");//把所有句号替换为空格System.out.println(str1+"!"); //打印输出 }catch(FileNotFoundException e) {//异常捕获 e.printStackTrace();} catch(IOException e){ e.printStackTrace(); }finally{ //最终行为---关闭流~~~try{ if(din !=null){ din.close(); }}catch(IOException e){ e.printStackTrace(); } } }} /// <summary> /// 返回字符串中的汉字 /// </summary> /// <param name="str">原字符串</param>private string getTemp(string str) { char[] clist= str.ToCharArray(); string tmpstr = ""; int code = 0; int chfrom = Convert.ToInt32("4e00", 16); //范围(0x4e00~0x9fff)转换成int(chfrom~chend) int chend = Convert.ToInt32("9fff", 16); for(int i=0;i<clist.Length;i++) { code =Char.ConvertToUtf32(str,i); if (code >= chfrom && code <= chend) { tmpstr += clist[i].ToString(); } } return tmpstr; } string str="123 是发达大 215 结合客户交互和好 12131sfagsa";string ret=System.Text.RegularExpressions.Regex.Replace(str,@"[^(\u4e00-\u9fa5)]",""); 除了ascii字符以外,不是汉字的字符多着呢,比如拉丁文,俄文等等 请大神指点错在哪里? 与目标主机建立连接后怎样获取本地主机与目标主机连接的IP(本机多网卡) 大量数据的处理! 请教有什么办法可以让系统自动执行些程序又不必人为登陆 VS 是否可以手动添加引用? 才学C#,遇到个问题想请各位帮帮忙看一下!谢谢了! 嵌套类如何获得宿主类this实例的引用? 怎样在winfrom datagird中得到选定一行的内容,和按顺序得到一行的内容?? 关于获取子窗体句柄问题 如何接收鼠标标题栏中的点击消息呢/ Workflow 启动的时候出现问题 winform - 关于项目中嵌入帮助文档的小小小小问题
这样子要提出哪些汉字
String exp = "123 是发达大";
String result = exp.replace("\\d*\\s*","");
2. 字符对应的编码值在,19968和40869之间的为中文
string name = "nihao高峰";
int currentcode=-1;
for (int i = 0; i < name.Length; i++)
{
currentcode=(int)name[i];
if (currentcode >19968&¤tcode < 40869)
{
Console.WriteLine(name[i].ToString());
}
} 类似这样去拿就可以解决问题了
System.Collections.IEnumerator list= mc.GetEnumerator();
string result="";
while(list.MoveNext())
result+=list.Current.ToString();
//先在编译的当前文件夹下建一个文本,里面写汉字,
//文件名为a.txt。
public class ReadTest{
public static void main(String[] args){
DataInputStream din=null;
try{
//定义一个输入流,把当前文件夹下的a.txt里的内容
//以GB2312字符集读出
InputStreamReader is=new InputStreamReader(new FileInputStream("a.txt"),"GB2312");
String str1="";
String str2="";
//循环度每一个字符,并连接在一个字符串str1上
int i=-1;
while((i=is.read())!=-1)
{
char m=(char)i;
str2=str2.valueOf(m);
str1=str1+str2;
}
//对字符串给出一些简单的操作
str1=str1.replaceAll(","," ");
//把所有逗号替换为空格
str1=str1.replaceAll("。"," ");
//把所有句号替换为空格
System.out.println(str1+"!"); //打印输出
}catch(FileNotFoundException e)
{//异常捕获
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
finally{ //最终行为---关闭流~~~
try{
if(din !=null){
din.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
}
/// <summary>
/// 返回字符串中的汉字
/// </summary>
/// <param name="str">原字符串</param>
private string getTemp(string str)
{
char[] clist= str.ToCharArray();
string tmpstr = "";
int code = 0;
int chfrom = Convert.ToInt32("4e00", 16); //范围(0x4e00~0x9fff)转换成int(chfrom~chend)
int chend = Convert.ToInt32("9fff", 16);
for(int i=0;i<clist.Length;i++)
{
code =Char.ConvertToUtf32(str,i);
if (code >= chfrom && code <= chend)
{
tmpstr += clist[i].ToString();
} }
return tmpstr;
}
string ret=System.Text.RegularExpressions.Regex.Replace(str,@"[^(\u4e00-\u9fa5)]","");