C# 怎样拆分中英文字符串? C# 怎样拆分中英文字符串? string str = "this is xiaoming小明";原字符串的空格要保留(有什么就要保留什么,不以改变原字符串的内容). 怎样拆分成string str1= "this is xiaoming"; string str2 = "小明";有什么方法可以做成这样? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以判断是空格的 还是字母还是汉字的 像char.IsSymbol ()一样 用正则表达试判断.. 循环截取 , 并且创建两个变量.. 是英文字母 就保存到英文字符串,不是英文就保存到汉字里. Regex.IsMatch方法 using System.Collections;using System.Text.RegularExpressions; private void button1_Click(object sender, EventArgs e) { string[] sourceStrings = textBox1.Text.Split('(', ')'); ArrayList chineseStrings = new ArrayList(); ArrayList englishStrings = new ArrayList(); for (int i = 0; i < sourceStrings.Length - 1; i++) { //判断是否是英文 Regex rIsEnglishString = new Regex("^[A-Za-z]"); if (rIsEnglishString.IsMatch(sourceStrings[i])) englishStrings.Add(sourceStrings[i]); { if (sourceStrings[i].Trim() != "") chineseStrings.Add(sourceStrings[i]); } } textBox2.Text = "中文名:"; for (int i = 0; i <= chineseStrings.Count - 1; i++) { textBox2.Text += " " + chineseStrings[i].ToString(); } textBox3.Text = "英文名:"; for (int i = 0; i <= englishStrings.Count - 1; i++) { textBox3.Text += " " + englishStrings[i].ToString(); } } 5楼写得还有欠妥当的应该用if(Regex..IsMatch(sourceStrings[i] ,"^[\u4e00-\u9fa5]" )){//取中文字符}else{if(Regex..IsMatch(sourceStrings[i] ,"^[A-Za-z])){//取英文文字符}} 直接 用这个 [\u4e00-\u9fa5\s]+|[\w\s]+ string[] sourceStrings = textBox1.Text.Split('(', ')');能把string str = "this is xiaoming小明";分解到数组中去吗?看不大懂直接Char c;foreach(c in str){[......]}这样遍历不也挺好的嘛 ArrayList ary = new ArrayList(); String str=textBox1.Text.Trim(); String zh_cn = ""; String en_us = ""; foreach (var c in str) { ary.Add(c.ToString()); } for (int i = 0; i < ary.Count; i++) { if (Regex.IsMatch(ary[i].ToString(), "^[\u4e00-\u9fa5]")) { //取中文字符 zh_cn += ary[i].ToString(); } else if (Regex.IsMatch(ary[i].ToString(), "^[A-Za-z]") || ary[i].ToString().Trim() == "") { //取英文文字符 en_us += ary[i].ToString(); } } MessageBox.Show(zh_cn + "**" + en_us);我的博客 程序员日记 http://www.ideaext.com 欢迎交流 用if判断之后用substring截取就行了!! if(Regex..IsMatch(sourceStrings[i] ,"^[\u4e00-\u9fa5]" )){//取中文字符}else{if(Regex..IsMatch(sourceStrings[i] ,"^[A-Za-z])){//取英文文字符}} if(Regex..IsMatch(sourceStrings[i] ,"^[\u4e00-\u9fa5]" )){//取中文字符}else{if(Regex..IsMatch(sourceStrings[i] ,"^[A-Za-z])){//取英文文字符}这个牛啊! 利用.net框架打包好的安装程序在安装的时候为什么很慢? 如何获取窗体的句柄 IE6中 href='ZZhengDian.aspx?Name=重点工程&Id=<%=Request.QueryString["Id"]%>'取不到值 C# SQL 的UPDATETEXT 问题 关于timer的问题 如何对datagridview格式化? 怎么获取本机连接的无线路由器的主机状态 编译无法通过 如何将C++的结构体转换成C# C#做类似QQ截图的工具时,将截图保存为文件时将保存对话框也给保存下来了? 怎样在C#中的pictureBox中添加透明图层 代码重构
Regex.IsMatch方法
using System.Text.RegularExpressions;
private void button1_Click(object sender, EventArgs e)
{
string[] sourceStrings = textBox1.Text.Split('(', ')');
ArrayList chineseStrings = new ArrayList();
ArrayList englishStrings = new ArrayList();
for (int i = 0; i < sourceStrings.Length - 1; i++)
{
//判断是否是英文
Regex rIsEnglishString = new Regex("^[A-Za-z]");
if (rIsEnglishString.IsMatch(sourceStrings[i]))
englishStrings.Add(sourceStrings[i]); {
if (sourceStrings[i].Trim() != "")
chineseStrings.Add(sourceStrings[i]);
}
}
textBox2.Text = "中文名:";
for (int i = 0; i <= chineseStrings.Count - 1; i++)
{
textBox2.Text += " " + chineseStrings[i].ToString();
}
textBox3.Text = "英文名:";
for (int i = 0; i <= englishStrings.Count - 1; i++)
{
textBox3.Text += " " + englishStrings[i].ToString();
}
}
if(Regex..IsMatch(sourceStrings[i] ,"^[\u4e00-\u9fa5]" )){
//取中文字符
}else{
if(Regex..IsMatch(sourceStrings[i] ,"^[A-Za-z])){//取英文文字符}}
[\u4e00-\u9fa5\s]+|[\w\s]+
string[] sourceStrings = textBox1.Text.Split('(', ')');能把string str = "this is xiaoming小明";分解到数组中去吗?看不大懂
直接Char c;
foreach(c in str)
{
[......]
}这样遍历不也挺好的嘛
String str=textBox1.Text.Trim();
String zh_cn = "";
String en_us = ""; foreach (var c in str)
{
ary.Add(c.ToString());
} for (int i = 0; i < ary.Count; i++)
{
if (Regex.IsMatch(ary[i].ToString(), "^[\u4e00-\u9fa5]"))
{
//取中文字符
zh_cn += ary[i].ToString(); }
else if (Regex.IsMatch(ary[i].ToString(), "^[A-Za-z]") || ary[i].ToString().Trim() == "")
{
//取英文文字符
en_us += ary[i].ToString();
}
}
MessageBox.Show(zh_cn + "**" + en_us);
我的博客 程序员日记 http://www.ideaext.com 欢迎交流
之后用substring截取就行了!!
if(Regex..IsMatch(sourceStrings[i] ,"^[\u4e00-\u9fa5]" ))
{
//取中文字符
}
else
{
if(Regex..IsMatch(sourceStrings[i] ,"^[A-Za-z]))
{//取英文文字符}}
//取中文字符
}else{
if(Regex..IsMatch(sourceStrings[i] ,"^[A-Za-z])){//取英文文字符}
这个牛啊!