Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查单词是否以大写或小写开头_C#_Regex_Visual Studio - Fatal编程技术网

C# 检查单词是否以大写或小写开头

C# 检查单词是否以大写或小写开头,c#,regex,visual-studio,C#,Regex,Visual Studio,我需要编写一个程序,当它在文本中找到“时,它应该检查下一个单词,如果它以大写字母开头,那么它将只在列表框中“.”之前的单词。如果不是(以小写字母开头),那么在另一个列表框中检查它之前的单词 到目前为止,我已经知道了这一点,但它似乎没有什么用处: string st= File.ReadAllText(@"D:\\f1.txt"); textBox1.Text = st; string[] s = st.Split(' '); for (int i = 0; i <= s.Length; i

我需要编写一个程序,当它在文本中找到
时,它应该检查下一个单词,如果它以大写字母开头,那么它将只在列表框中“.”之前的单词。如果不是(以小写字母开头),那么在另一个列表框中检查它之前的单词 到目前为止,我已经知道了这一点,但它似乎没有什么用处:

string st= File.ReadAllText(@"D:\\f1.txt");
textBox1.Text = st;
string[] s = st.Split(' ');
for (int i = 0; i <= s.Length; i++)
{
    if (s[i] == ".")
    {
        string v = s[i + 1];
        var c = v.ToCharArray();
        string ss=Convert.ToString(c[0]);
        if (Regex.IsMatch(ss, "[A-Z]"))
            listBox1.Items.Add(s[i - 1]);
        else
            listBox2.Items.Add(s[i - 1]);
    }
string st=File.ReadAllText(@“D:\\f1.txt”);
textBox1.Text=st;
字符串[]s=st.Split(“”);

对于(inti=0;i您可能可以使用正则表达式来实现

扩大

 (?<! \S )
 ( \w+ )                       # (1)
 \s+ 
 \.
 (?=
      \s+ 
      ( \w+ )                       # (2)
      (?! \S )
 )

你可以用正则表达式来做

扩大

 (?<! \S )
 ( \w+ )                       # (1)
 \s+ 
 \.
 (?=
      \s+ 
      ( \w+ )                       # (2)
      (?! \S )
 )
您可以使用查找点,然后使用查找它是大写还是小写。

您可以使用查找点,然后使用查找它是大写还是小写。

Char.IsUpper()显然是最简单、最实用的方法。但是,如果您想给面试官留下深刻印象,这将起作用:

bool StartsWithUpper(string word)
{
    return Enumerable.Range(65, 26).Contains((int)word[0]);
}
显然,Char.IsUpper()是最简单、最实用的方法。但是,如果你想给面试官留下深刻印象,这将是可行的:

bool StartsWithUpper(string word)
{
    return Enumerable.Range(65, 26).Contains((int)word[0]);
}

为什么不检查
ss.StartsWith(ss.ToUpper())
ss.ToLower()的值
c#中有一个用于字符串的
StartsWith
函数。此外,您还可以使用
IndexOf
函数在
之后查找值。如果您编辑问题并粘贴文本文件的至少第一行,这样我们就可以看到您看到的内容,这也会有所帮助。请解释什么是fo这些字符串的rmat。空格是否将点和下一个/上一个单词分开?点是否附加到下一个单词上?如果在空格处分开,则不一定在
s
的一个数组元素中得到
。请参见示例
你好。天气真好
,如果在空格处分开,则得到
字符串[]s={“你好”,“那里。”,“很好”,“天气”}
,所以检查
s[i]=>。"
对于这个集合中的任何元素都不会满意。在这种情况下,您的逻辑还不太正确。最好给我们展示一下
D:\f1.txt
文件中的一些行以及预期的输出/结果。谢谢大家的重播^-^@MaximilianGerhardt您是对的,我检查一下,它并没有切中要害。作为一个单词,我可以吗询问您的意见,您有什么建议来代替(string[]s=st.Split('')?^-^为什么不检查
ss.StartsWith(ss.ToUpper())
ss.ToLower()的值
c#中有一个用于字符串的
StartsWith
函数。此外,您还可以使用
IndexOf
函数在
之后查找值。如果您编辑问题并粘贴文本文件的至少第一行,这样我们就可以看到您看到的内容,这也会有所帮助。请解释什么是fo这些字符串的rmat。空格是否将点和下一个/上一个单词分开?点是否附加到下一个单词上?如果在空格处分开,则不一定在
s
的一个数组元素中得到
。请参见示例
你好。天气真好
,如果在空格处分开,则得到
字符串[]s={“你好”,“那里。”,“很好”,“天气”}
,所以检查
s[i]=>。"
对于这个集合中的任何元素都不会满意。在这种情况下,您的逻辑还不太正确。最好给我们展示一下
D:\f1.txt
文件中的一些行以及预期的输出/结果。谢谢大家的重播^-^@MaximilianGerhardt您是对的,我检查一下,它并没有切中要害。作为一个单词,我可以吗询问您的意见您有什么建议,而不是(string[]s=st.Split(“”)???^-^:(我对c#完全不熟悉,并且发现了正则表达式,我真的不知道如何处理它,您介意进一步解释吗?)(我是c#的新手,顺便说一句,我发现了正则表达式,但我真的不知道如何处理它,请你进一步解释一下。