如果按下返回键,我怎么不跳过一行

时间:2017-05-28 22:21:28

标签: c# keyboard

所以我有代码在每个句点之后分隔输入。然后将每个句子放在不同的行上。如何在输入中确保按回车时不要跳过一行?这是我的代码:

    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

2 个答案:

答案 0 :(得分:1)

您可以通过将“。\ n”的所有出现替换为“。”来预处理输入字符串。 (当行以点结尾时,这有效地删除了所有换行符。)

input.Replace(".\n", ".").Split('.')

或者你可以通过删除数组中纯空格的所有字符串(新行,制表符,空格)来对标记进行后处理。

Output.Text = string.Join(Environment.NewLine, tokens.Where(s => !string.IsNullOrWhiteSpace(s)));

<强>更新

如果你在.Net 4.0以下,你可以做到

Output.Text = string.Join(Environment.NewLine, tokens.Where(s => s != "\n" && s != "\r\n")));

答案 1 :(得分:0)

您必须删除换行符。尝试将 Environment.NewLine 替换为 String.Empty