C# 如果按下返回键,我如何不跳过一行
所以我有代码,在每个周期后分离输入。然后把每个句子放在不同的行上。如果按return键,如何确保在输入中不跳过一行?这是我的密码:C# 如果按下返回键,我如何不跳过一行,c#,keyboard,C#,Keyboard,所以我有代码,在每个周期后分离输入。然后把每个句子放在不同的行上。如果按return键,如何确保在输入中不跳过一行?这是我的密码: string input = TextEditor.Text; string[] tokens = input.Split('.'); Output.Text = string.Join(Environment.NewLine, tokens); if (Keyboard.IsKeyDown(Key.Enter
string input = TextEditor.Text;
string[] tokens = input.Split('.');
Output.Text = string.Join(Environment.NewLine, tokens);
if (Keyboard.IsKeyDown(Key.Enter)) // for some reason words "Keyboard" and "Key" Don't work.
{
// I don't know what to do here
}
所以现在如果我写:
Hello I am a human.
A good human
我将得到以下输出:
Hello I am a human
A good human
你必须去掉断线。尝试将Environment.NewLine替换为String.Empty您可以通过将所有出现的替换为来预处理输入字符串。\n。当线以点结束时,这将有效地删除所有换行符
input.Replace(".\n", ".").Split('.')
或者,您可以通过删除数组中纯空白的所有字符串(新行、制表符、空白)对标记进行后处理
Output.Text = string.Join(Environment.NewLine, tokens.Where(s => !string.IsNullOrWhiteSpace(s)));
更新
如果您低于.NET4.0,您可以这样做
Output.Text = string.Join(Environment.NewLine, tokens.Where(s => s != "\n" && s != "\r\n")));
您可以使用input.replace替换所有。/n。\n,…拆分。。。或者你做代币。Where=>!当你加入字符串时,string.IsNullOrWhitespaces应该是\n@Timo::该死的。我更新了comment@Timo当我这样做时,我会在IsNullOrWhitespace处得到一个错误。它说:字符串不包含IsNullOrWhitespace的定义,因为它实际上不起作用,因为我仍然需要它,就好像当我放入句点时,字符串的其余部分将被放入新行一样。当我这样做时,IsNullOrWhitespace会出错。它说:字符串不包含IsNullOrWhitespace@DrummingAce您使用哪个版本的.Net?.Net 4.0附带string.IsNullOrWhitespace。我不确定,但我确实使用了.NET4.0的一个版本。VisualStudios2015中的哪一款是我最喜欢的use@DrummingAce哦,我有个打字错误。我已经更新了答案。