例如,如果有一个包含此文本的文本框:
敏捷的棕色狐狸跳过了懒狗。
并且文本框的闪烁光标(文本插入符号)位于 quick
中的 i
,这将是一种查找 索引的优雅方式>q
和 k
?
基本上,给定字符串中的一个位置,我如何找到单词开头和结尾的索引?如果给定的索引是一个空格,则假定它使用前一个词。
我有一个非常 hackish 的解决方案,它使用双向循环,直到每个循环都找到一个空间,但它真的很乱,我想知道是否有更简单的方法来解决这个问题。已经很晚了,所以我觉得我可能在这里遗漏了一些明显的东西。
感谢您的帮助。
最佳答案
在两个方向上使用循环对我来说听起来是正确的方法 - 但您不需要编写循环。您可以使用 String.IndexOf
和 String.LastIndexOf
:
int nextSpace = text.IndexOf(' ', index);
int previousSpace = text.LastIndexOf(' ', index);
它会很繁琐,你还应该考虑到单词并不总是在空格边界处中断 - 但至少应该摆脱你的循环:)
关于c# - 如何根据单词中的给定索引找到单词的开始和结束索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9451585/