首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么判断一组数字就是1到10

2011-12-17 
如何判断一组数字就是1到10输入一组数字。必须是1234567890这10位,不能重复。可以颠倒。我这么写的:stringmyS

如何判断一组数字就是1到10
输入一组数字。必须是1234567890这10位,不能重复。可以颠倒。
我这么写的:
    string   myStr=this.textbox1.Text;
      if   (myStr.Length   !=   10)
                {
                        Response.Write( "字母个数不对 "   +   " <br> ");
                        return;
                }
      string[]   theOrder   =   new   string[10];
        //赋值
    for   (int   i   =   0;   i   <   10;   i++)    
                {
                        theOrder[i]   =   myStr.Substring(i,   1);
                }
        //判断是否符合规则
        for   (int   i   =   0;   i   <   10;   i++)
                {
                        bool   ifTheNumber=   false;
                        for   (int   k   =   1;   k   <   11;   k++)
                        {
                                if   (theOrder[i]   ==   k.ToString())
                                {
                                        ifTheNumber=   true;
                                        break;
                                }

                        }
                        if   (ifTheNumber==   false)
                        {
                                Response.Write( "不等于1到6之间的数! ");
                                return;
                        }
                        for   (int   j   =   0;   j   <   10;   j++)
                        {
                                if   (i   !=   j   &&   theOrder[i]   ==   theOrder[j])
                                {


                                       
                                        Response.Write( "有重复! ");
                                        return;
                                }
                        }
                }
     
    只能写出这样的办法了,觉得太垃圾。有没有比较好的计算方法。

[解决办法]
使用正则表达式
[解决办法]
string myStr=this.textbox1.Text;
char[] dic = new char[] { '1 ', '2 ', '3 ', '4 ', '5 ', '6 ', '7 ', '8 ', '9 ', '0 '};
bool[] IsD = new bool[10];
if (myStr.Length != 10)
{
Response.Write( "字母个数不对 " + " <br> ");
return;
}

for(int i=0;i <10;i++)
{
int index = Contains(myStr[i]);
if(index == -1)
{
Response.Write( "不包括 " + " <br> ");
return;
}
IsD[index]++;
if(IsD[index] > 1)
{
Response.Write( "重复了 " + " <br> ");
return;
}
}


//function
int Contains(char str)
{
for(int i=0;i <dic.Length;i++)
{
if(str == dic[i])
return i;
}
return -1;
}

热点排行