标题:我编了一个查看汉字区位码的程序,大伙给提提意见!
取消只看楼主
ruihua
Rank: 1
等 级:新手上路
威 望:1
帖 子:235
专家分:0
注 册:2006-2-21
 问题点数:0 回复次数:1 
我编了一个查看汉字区位码的程序,大伙给提提意见!

using System;

class EditDistrictCode
{
public static void Main(string[] args)
{
while(true)
{
Console.Write("请输入一个或多个汉字(按\"E\"退出):");
string inputString = Console.ReadLine();

if(inputString.ToUpper() == "E")
{
break;
}
else
{
if(CheckInput(inputString))
{
Console.WriteLine(MultiTextToQwm(inputString));
}
else
{
Console.WriteLine("你输入了非法字符!");
}
}
}
}

//检查输入的是否为汉字
public static bool CheckInput(string inputString)
{
bool result = true;
char[] textArray = inputString.ToCharArray();
foreach (char cha in textArray)
{
//只要有一个不符合条件,结果即为假(汉字的ASCII在0x4e00至0x9fa5之间)
if (!(cha >= 0x4e00 && cha <= 0x9fa5))
{
result = false;
}
}
return result;
}

//单个汉字处理
public static string OneTextToQwm(string character)
{
//将汉字的机器码取出放入字节数组中
byte[] bytes = System.Text.Encoding.Default.GetBytes(character);

//将机器码高字节部分放入highByte变量中,低字节部分放入lowByte中
int highByte = (int)(bytes[0]);
int lowByte = (int)bytes[1];
highByte -= 160;
lowByte -= 160;

//设置区码、位码,位置只有一位在前面补0
string highCode = highByte.ToString();
string lowCode = lowByte.ToString();
if (highCode.Length == 1)
{
highCode += "0";
}

if (lowCode.Length == 1)
{
lowCode += "0";
}
return character + highCode + lowCode;
}

//多个汉字处理
public static string MultiTextToQwm(string character)
{
string coding = null;
for (int i = 0; i < character.Length; i ++ )
{
coding +=OneTextToQwm(character.Substring(i,1));
}
return coding;
}
}

[此贴子已经被作者于2006-10-20 16:59:34编辑过]

搜索更多相关主题的帖子: 区位 汉字 意见 
2006-10-20 11:17
ruihua
Rank: 1
等 级:新手上路
威 望:1
帖 子:235
专家分:0
注 册:2006-2-21
得分:0 
就是如何判断输入的是汉字的功能不知道怎么写,请朋友们指点一下。感谢!

2006-10-20 11:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-97538-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052713 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved