我有一个字符串getallairlinedetails
。在指定的字符串之间没有空格或分隔符。我如何分割这样的字符串:“获取所有航空公司的详细信息”如何拆分C#中指定字符串的单词?
回答
这是不可能的。 Split方法至少需要一个字符,比如空格,以便分割字符串。否则,没有任何标准将字符串拆分为一组子字符串。
在尝试选择类型的方法来解决问题之前,请考虑问题。你会如何分割这个字符串?你的算法是什么?
想想后者,很快你会意识到你根本无法分裂它,因为你没有任何可以依赖的东西。
例如,你的情况,如果字符串是这样的:
"get_all_airline_details"
它会一直明确表示,所有的话都彼此分开了_
。因此,从左到右,您会在第一个_
处找到第一个单词的结尾。然后,第二个单词将在此_
之后开始,并将在第二个_
等结束,等等。
当然这被认为你会发现当你会注意到这个字符串。如果你想在C#中分割它,你可以使用字符串的分割方法传递这个字符_
。然而,上述的结论是,我们应该先找到一个“模式”,然后尝试分割字符串。那么你将使用哪种语言来做到这一点,这并不重要。
它似乎是一个评论 – 2015-04-03 08:37:18
@SaiKalyanKumarAkshinthala这是我的第一个想法。但是,我再次想到了这一点,我意识到这是唯一可以解决这个问题的答案。 – Christos 2015-04-03 08:38:35
有没有什么办法可以从这个字符串中得到这样的单词:get – 2015-04-03 08:39:05
由于这里没有明显的拆分模式,因此没有可靠的方式供您使用。
但是,如果您的单词溢出不是很大 - 您可以尝试创建一些字典,然后使用该字典进行分割。
你可以尝试从字典
word_from_dictionary => " " + word_from_dictionary + " "
和拆分使用空间作为分隔符由String.Split
得到的字符串在字符串中的每个字代替。
例如,让你的字典包含单词“get”,“all”和“details”。
然后,通过替换字典中的所有单词,您将获得get all airline details
- 这可以被拆分。
当然,这不是一个非常可靠的方式,因为它取决于你需要以某种方式填充字典。
另外,如果字典同时包含“航空公司”和“空中”,那么你不想拆分“航空公司”。 – 2015-04-03 08:57:51
@HansKesting当然。其实它暗含在“*它是不是非常可靠的方式,因为它取决于字典*”太...感谢重音这个问题。 – 2015-04-03 09:00:35
鉴于一般来说这是一个坏主意,我不确定使用“Contains”作为你的建议是一个好主意,而不是试图从左到右查找单词,并在你找不到一个单词时停止。显然这样你就需要一个完整的字典,而不是像你所建议的那样是一部分字典。因此,考虑到“get all airline”和“getallairlinedetails”这两个词,你开始使用'StartsWith'查找并删除找到的单词。 – xanatos 2015-04-03 10:26:51
public static List<string> Dict = new List<string> { "details", "airline", "all", "get" };
static void Main(string[] args)
{
String s = "getallairlinedetails";
Console.WriteLine(ReturnSplitString(s));
Console.ReadLine();
}
public static string ReturnSplitString(string s)
{
string[] ww = new string[s.Length];
foreach (string word in Dict)
{
if (s.Contains(word))
{
int ind = s.IndexOf(word);
ww[ind] = word;
}
}
string sf = "";
foreach (string sr in ww)
{
if (sr != null)
sf += sr + " ";
}
return sf.TrimEnd(' ');
}
这样的事情将是你唯一的选择,遍历包含个别字的字典,由他们在字符串中的位置将它们存储,然后再加入数组了在年底才能。
该代码正确返回的方式,只是改变s
并添加任何单词到字典将返回不同的单词。
没有办法做到这一点,至少没有知道你在寻找什么,虽然是问题。
- 1. 按字符数拆分字符串而不拆分单词
- 2. 如何从字符串中读取并拆分某些单词?
- 3. 如何从一个拆分字符串中提取单词
- 4. 如何在C#中拆分字符串
- 5. 在指定长度的子字符串中拆分字符串
- 6. 如何拆分字符串而不丢失任何单词?
- 7. 如何将字符串拆分为单词和Python中的特殊字符?
- 8. 在没有拆分词的子字符串(行)中拆分字符串
- 9. 将多语言字符串拆分为单词c#
- 10. C++函数将字符串拆分为单词
- 11. 搜索指定单词的字符串
- 12. 在javascript中以较小的单词/字符串拆分长字/字符串
- 13. 拆分字符串以获取单词分隔符
- 14. 如何通过数字从字符串中分离单词C
- 15. C#拆分字符串 - 将字符串拆分为数组
- 16. 围绕任何未指定字符拆分字符串
- 17. 如何将多字节字符串拆分为Php中的单词?
- 18. 如何将字符串拆分为单词并获取c#中不同的单词?
- 19. C - 拆分字符串
- 20. 拆分字符串值C#
- 21. 拆分字符串值c#
- 22. 用C拆分字符串
- 23. 在SQL中指定字符处拆分字符串
- 24. 拆分为字符串列表中的单词
- 25. 在下一个冒号前的单词中拆分字符串?
- 26. 将字符串拆分为php中的单词
- 27. 拆分太长的单词与' - '字符
- 28. 如何拆分字符串?
- 29. 如何拆分字符串?
- 30. 如何拆分字符串?
我没有看到任何模式来分割它。 – 2015-04-03 08:36:18
是否有任何可能的方式,我可以从这个字符串像航空公司得到的话或得到 – 2015-04-03 08:40:11
无论如何看看'String.Split'重载或其他'字符串'方法.. – 2015-04-03 08:41:48