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