黑马程序员技术交流社区
标题:
字符辨别问题
[打印本页]
作者:
伪善者。
时间:
2014-3-26 17:39
标题:
字符辨别问题
本帖最后由 伪善者。 于 2014-3-26 18:55 编辑
请问怎么实现从一个字符串中 可以分别辨识出 字母和 汉字 并把他们分别存入两个char[]中么?
比如 "w我a爱h黑m马c程x序y员" 分别提取出
char[] zimu={'w','a','h','m','c','x','y'}和 char[] hanzi={"我","爱","黑","马","程","序","员"}
请尽量带点注释 谢谢各位前辈感谢各位的回答 我得好好研究下 嘿嘿
作者:
mdb
时间:
2014-3-26 17:59
一个简单的笨方法
string s = "w我a爱h黑m马c程x序y员";
char[] chchar = s.ToCharArray().Where(r => "abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".Contains(r)).ToArray();// 获取字符
char[] chhz = s.ToCharArray().Where(r => !"abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".Contains(r)).ToArray();// 获取汉字
foreach (var v in chchar) // 输出字符
Console.Write(v);
Console.WriteLine();
foreach (var v in chhz)// 输出汉字
Console.Write(v);
复制代码
作者:
lmm
时间:
2014-3-26 18:17
使用字符的ASCII码判断就行
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 分离汉字和字母
{
class Program
{
static void Main(string[] args)
{
string message = "w我a爱h黑m马c程x序y员";
List<char> letters = new List<char>(); //用于存储字母的集合
List<char> Chinese = new List<char>(); //用于存储汉字的集合
for (int i = 0; i < message.Length; i++)
{
int currentCode = (int)message[i]; //将当前字符转换成ASCII码
if (currentCode >19968 && currentCode < 40869) //汉字的编码范围
{
Chinese.Add(message[i]); //加入到汉字集合
}
else if (currentCode > 96 && currentCode < 123) //字母的编码范围
{
letters.Add(message[i]); //加入到字母集合
}
}
Console.WriteLine("字母:");
foreach (char letter in letters)
{
Console.WriteLine(letter);
}
Console.WriteLine("汉字");
foreach (char item in Chinese)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}
}
复制代码
作者:
墨蹄
时间:
2014-3-26 18:35
string str="w我a爱h黑m马c程x序y员";
char[] zimu = { 'w', 'a', 'h', 'm', 'c', 'x', 'y' };
char [] hanzi={'我','爱','黑','马','程','序','员'};
string strZm="abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//字母字符串
List<char> zimuList = new List<char>();
List<char> hanziList = new List<char>();
for (int i = 0; i < str.Length; i++)
{
if (strZm.Contains(str[i]))//如果包含,则分到字母zimuList否则分到hanziList
{
zimuList.Add(str[i]);
}
else
{
hanziList.Add(str[i]);
}
}
char[]newzimu=new char[zimuList.Count];//定义新的数组
char[]newhanzi=new char[hanziList.Count];
for (int i = 0; i < newzimu.Length; i++)
{
newzimu[i]=zimuList[i];
Console.WriteLine(newzimu[i]);
}
for (int i = 0; i < newhanzi.Length; i++)
{
newhanzi[i] = hanziList[i];
Console.WriteLine(newhanzi[i]);
}
Console.ReadKey();
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2