例如,如果有一个包含此文本的TextBox:
The quick brown fox jumped over the lazy dog.
文本框的闪烁光标(文本插入符号)位于i
中的quick
,这是找到q
和索引的索引的优雅方式对于k
?
基本上,给定字符串中的位置,我如何找到单词开头和结尾的索引?如果给定的索引是空格,则假设它使用前一个单词。
我有一个真正的hackish解决方案,使用两个方向的循环,直到每个人找到一个空间,但它真的很乱,我想知道是否有更简单的方法来解决问题。已经很晚了,所以我觉得我可能会遗漏一些明显的东西。
感谢您的帮助。
答案 0 :(得分:4)
在两个方向上使用循环听起来对我来说是正确的方法 - 但你不需要编写循环。您可以使用String.IndexOf
和String.LastIndexOf
:
int nextSpace = text.IndexOf(' ', index);
int previousSpace = text.LastIndexOf(' ', index);
会非常繁琐,你也应该认为单词并不总是在空间边界处破坏 - 但至少应该摆脱你的循环:)