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#的新手,顺便说一句,我发现了正则表达式,但我真的不知道如何处理它,请你进一步解释一下。