小编Tak*_* M.的帖子

在第一个空格处划分一个字符串

对于聊天机器人,如果有人说"!说"它会在空间后背诵你所说的内容.简单.

输入示例:

!say this is a test
Run Code Online (Sandbox Code Playgroud)

期望的输出:

this is a test
Run Code Online (Sandbox Code Playgroud)

字符串可以表示为s参数.s.Split(' ')产生一个数组.

s.Split(' ')[1]这只是空间之后的第一个词,是关于在第一个空间之后完全划分和获取所有单词的任何想法?

我尝试过这样的事情:

s.Split(' ');
for (int i = 0; i > s.Length; i++)
{
    if (s[i] == "!say")
    {
        s[i] = "";
    }
}
Run Code Online (Sandbox Code Playgroud)

输入是:

!say this is a test
Run Code Online (Sandbox Code Playgroud)

输出:

!say
Run Code Online (Sandbox Code Playgroud)

这显然不是我想要的:p

(我知道这个问题有几个答案,但没有一个用C#从我搜索的地方写的.)

c# regex string split

12
推荐指数
2
解决办法
2万
查看次数

input元素上的Pattern属性允许空值?

我要求用户给我一个至少3个字符,最多30个字符且只包含字母和数字的昵称.

<form>
    Nick: <input type="text" name="nick" pattern="[A-Za-z0-9]{3,30}">
    <input type="submit" value="Join lobby">
</form>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是接受空表格.
正如所料,长度为1,2或31+或包含标点符号的字符串不会通过.但如果他们只是不把任何东西放进盒子里,那就接受了.

我怎样才能解决这个问题?

html regex validation html5

5
推荐指数
1
解决办法
4489
查看次数

将字符串转换为Ints

好吧,小问题.我知道.基本的反应可能是

Convert.ToInt32(string);
Run Code Online (Sandbox Code Playgroud)

但很自然地,C#会做每一个自然过程以确保不会发生这种情况.

这是我的代码:

            while (true)
            {

                while (true)
                {
                    //ask for time
                    Console.WriteLine("What is the hour?");
                    Console.WriteLine();
                    string s = Console.ReadLine();
                    //convert input to int
                    YourTime.nHour = Convert.ToInt32(s);
                    //check to see if it's legal
                    if ((YourTime.nHour <= 12) || (YourTime.nHour > 0))
                    {
                        break;
                    }
                //etc etc code
                }
            }  
Run Code Online (Sandbox Code Playgroud)

我想确保输入是实际的小时.当我运行这段代码时,它总是将if()语句标记为"true"并中断,即使我输入的内容如-13或99.

我确信有一个简单的替换"Convert.ToInt32(s);",但说实话,我似乎已经尝试了一切.我决定最好按照知道手头代码的人的逐步说明进行操作.

[编辑] - 错误的操作员,而不是转换.感谢所有帮助过的人!

c# string int operators

2
推荐指数
1
解决办法
209
查看次数

增加这个try-catch的可读性?

我想知道是否有更美观/更容易阅读的方式来编写以下内容:

for (int i = 0; i < 100; i++)
{ 
    // If m.GetString(i) throws an exception, continue.
    // Otherwise, do stuff.       
    try
    {
        string s = m.GetString(i);
        continue;
    }           
    catch (InvalidCastException) 
    { 
    }

    // do stuff with the message that you know is not a string.
}
Run Code Online (Sandbox Code Playgroud)

这是m看起来像:

msg[0] = 10
msg[1] = "string"
msg[2] = 2.224574743
// Etc.
// Assume it's different every time.
Run Code Online (Sandbox Code Playgroud)

因此,当我m.GetString(0)在这个例子中,它抛出一个异常,就像msg[0]a uint而不是a string.这是我用来获取类型的,因为m它不包含GetType而我无法编辑m.

m是Message库中的类的实例,我无法编辑. …

c# optimization code-readability

1
推荐指数
1
解决办法
119
查看次数

标签 统计

c# ×3

regex ×2

string ×2

code-readability ×1

html ×1

html5 ×1

int ×1

operators ×1

optimization ×1

split ×1

validation ×1