c# - 如何根据单词中的给定索引找到单词的开始和结束索引?

标签 c# string

例如,如果有一个包含此文本的文本框:

敏捷的棕色狐狸跳过了懒狗。

并且文本框的闪烁光标(文本插入符号)位于 quick 中的 i,这将是一种查找 索引的优雅方式>qk?

的索引

基本上,给定字符串中的一个位置,我如何找到单词开头和结尾的索引?如果给定的索引是一个空格,则假定它使用前一个词。

我有一个非常 hackish 的解决方案,它使用双向循环,直到每个循环都找到一个空间,但它真的很乱,我想知道是否有更简单的方法来解决这个问题。已经很晚了,所以我觉得我可能在这里遗漏了一些明显的东西。

感谢您的帮助。

最佳答案

在两个方向上使用循环对我来说听起来是正确的方法 - 但不需要编写循环。您可以使用 String.IndexOfString.LastIndexOf:

int nextSpace = text.IndexOf(' ', index);
int previousSpace = text.LastIndexOf(' ', index);

很繁琐,你还应该考虑到单词并不总是在空格边界处中断 - 但至少应该摆脱你的循环:)

关于c# - 如何根据单词中的给定索引找到单词的开始和结束索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9451585/

相关文章:

C#:设计一个更快的断言函数,仅在触发时格式化错误字符串

c# - 强制网页上的用户控件初始化自身

c# - 安装 .NET SDK 5.0 后,我还应该安装 .NET Core 吗?

c# - 反序列化真实世界的 JSON 数据

ruby - 为什么我不能用 gsub 替换字符串中的 '\\+'?

java - 如何在 Java 中测试字符串索引是否为 Null

c# - List <double [] []>到List <double []>

linux - 在 BASH 中处理字符串并计算看到的子字符串的数量

java - 在 Java 中,如何计算每个字母在多个字符串的各个列中出现的次数?

c++ - 如何对字符串使用通配符(匹配和替换)?