如何处理啊?~~
把该字符串中的中文字符用*替换~~~
谢谢大家了!!~
把该字符串中的中文字符用*替换~~~
谢谢大家了!!~
解决方案 »
- 泛型问题
- 新手问个问题:线程间操作的问题
- 麻烦给讲讲
- 使用C#中Random函数获取随机值的时候出现的问题(100分)
- (急切求助)DataTable和DataGridView常见问题(在线等)
- 水晶报表查看器树形结构查看多张报表如何实现?
- vs2003 (c#)+SQL2000, winform 中的datagrid添加、修改、删除、查询数据库操作如何做呢?
- 用C#写的程序,怎么作安装程序来发布
- 绘制控件边界的问题?????????????????????????
- C#使用Excel问题!急!先谢了!
- 能不能实现通过互联网运行服务器端的程序?
- 个人感觉C#将C++程序员平稳转型成了basic程序员。
for(int i=0; i<str.Length; i++)
{
if (IsChineseChar(str[i])
{
str[i] = '*';
}
}bool IsChineseChar(char ch)
{
byte[] bytes = System.Text.Encoding.GetEncoding("gb2312").GetBytes(ch.ToString());
if (bytes.Length != 2)
{
return false;
} int zone = bytes[0];//刚好是“区”的值
int num = bytes[1];//刚即时“位”的值
return (zone >= 0xB0 && zone <=0xF7) && (num >0xA0 && num<0xFD);
}
{
byte[] bytes = System.Text.Encoding.GetEncoding("gb2312").GetBytes(ch.ToString());
if (bytes.Length != 2)
{
return false;
} int zone = bytes[0];//刚好是“区”的值
int num = bytes[1];//刚即时“位”的值
return (zone >= 0xB0 && zone <=0xF7) && (num >0xA0 && num<0xFD);
}
using System.Text.RegularExpressions;class Test
{
static void Main()
{
string s0 = "This 是 a 中文 string.";
Console.WriteLine(s0);
string s1 = (new Regex(@"[\u4e00-\u9fa5]")).Replace(s0, "*");
Console.WriteLine(s1);
}
}/* 程序输出如下:
This 是 a 中文 string.
This * a ** string.
*/
if ("1234567890".IndexOf(str[i]} >=0)
{
str[i] = '*';
}
但是我有很多地方不懂,比如:
System.Text.Encoding.GetEncoding("gb2312").GetBytes(ch.ToString());
中的("gb2312")还有:return (zone >= 0xB0 && zone <=0xF7) && (num >0xA0 && num<0xFD);
这些是什么意思啊?
可否解释一下?马上给分!!
{
byte[] bytes = System.Text.Encoding.GetEncoding("gb2312").GetBytes(ch.ToString()); if (bytes.Length != 2)
{
return false;
}int zone = bytes[0];//刚好是“区”的值
int num = bytes[1];//刚即时“位”的值return (zone >= 0xB0 && zone <=0xF7) && (num >0xA0 && num<0xFD);
}
请问这个是什么意思啊:(new Regex(@"[\u4e00-\u9fa5]")).
string s1 = (new Regex(@"[\u4e00-\u9fa5]")).Replace(s0, "*");完整的程序我前面已经给出了,再次贴出如下:
----------------------------------------------------------
using System;
using System.Text.RegularExpressions;class Test
{
static void Main()
{
string s0 = "This 是 a 中文 string.";
Console.WriteLine(s0);
string s1 = (new Regex(@"[\u4e00-\u9fa5]")).Replace(s0, "*");
Console.WriteLine(s1);
}
}/* 程序输出如下:
This 是 a 中文 string.
This * a ** string.
*/
Regex regex = (new Regex(@"[\u4e00-\u9fa5]"));
完整的程序如下:
-----------------------------------------------------
using System;
using System.Text.RegularExpressions;class Test
{
static void Main()
{
Regex regex = (new Regex(@"[\u4e00-\u9fa5]"));
Console.WriteLine(regex.Replace("中文HAHA,还是中文!", "*"));
Console.WriteLine(regex.Replace("This is English!", "*"));
Console.WriteLine(regex.Replace("And国家is國家", "*"));
}
}/* 程序输出如下:
**HAHA,****!
This is English!
And**is**
*/
其实我的目的就是只想用单字节字符,那么我用@"[^\x00-\xff]"吗?里面有“^”的吗?
weisunding(鼎鼎),获得最有自信奖!
wuyi8808(air|skyiv.com),获得最佳技术奖!
不过大家都有一个共同的奖——最佳热心奖!!!!
真的很感谢你们!!!MSN: [email protected]
---------------------------------------------------------------------------如果是只想保留字符串中的单字节字符,而把非单字节字符用*替换,以下语句就可以了:
string s1 = (new Regex(@"[^\x00-\xff]")).Replace(s0, "*");正则表达式的[]里面的^是表示除外的意思,如:
@"[0-9^357]" 表示 0-9 中除 3 5 7 外的字符,匹配 0 1 2 4 6 8 9 这几个字符。
加我MSN吧!!~
结贴了!