怎么样先判断一个string是不是英文构成的字符串?代码,谢谢。

mywindyboy 2006-10-30 11:20:17
怎么样先判断一个string是不是英文构成的字符串,如果是,怎样对其中的每个字符排序后重新构成新的字符串。。不区分大小写,都按照大写字符来操作。

如:WZD转换为:DWZ。
...全文
311 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
GXY2005 2006-10-30
  • 打赏
  • 举报
回复
什么是算法,這就是算法!
GXY2005 2006-10-30
  • 打赏
  • 举报
回复
public string IsEnglish(string str)
{
str = str.ToUpper();
string[] arr = new string[26];
foreach(char c in str)
{
if (c<'A' || c>'Z')
{
return "非英文构成";
}
arr[(int)(c-'A')]+=c;
}
return string.Join("",arr);
}
---------------------
經典
viena 2006-10-30
  • 打赏
  • 举报
回复
我写的有个转换是多余的
arr[(int)(c-'A')]+=c;
=>
arr[(c-'A')]+=c;
Ivony 2006-10-30
  • 打赏
  • 举报
回复
维也纳的不错,应该算是最短的,刚才没看到……
Ivony 2006-10-30
  • 打赏
  • 举报
回复
前面要加上 str = str.ToUpper,貌似好像更长了……晕……
Ivony 2006-10-30
  • 打赏
  • 举报
回复
最短:


char[] chs = "ABCDEFGHIJKLMNOPQRATUVWXYZ".ToCharArray();
int[] chc = new int[26];
foreach ( ch in str )
{
for( int i = 0; i < 26, i++ )
{
if ( ch == chs[i] )
{
chc[i]++;
goto loop;
}
}
throw new Exception( "错误的字符串" );
loop:
}
string outstr = "";
for( int i = 0; i < 26; i++ )
outstr += new string( chs[i], chc[i] );
viena 2006-10-30
  • 打赏
  • 举报
回复
public string IsEnglish(string str)
{
str = str.ToUpper();
string[] arr = new string[26];
foreach(char c in str)
{
if (c<'A' || c>'Z')
{
return "非英文构成";
}
arr[(int)(c-'A')]+=c;
}
return string.Join("",arr);
}
ZiRRen 2006-10-30
  • 打赏
  • 举报
回复
用正则判断是不是英文构成,然后再排序
woshibai112 2006-10-30
  • 打赏
  • 举报
回复
up up up
mywindyboy 2006-10-30
  • 打赏
  • 举报
回复
谢谢高手们
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-10-30 11:20
社区公告

让您成为最强悍的C#开发者