我有一串单词,我想从每个单词中删除多个后缀和前缀(位于数组中),然后将词干存储在字符串中。请问有什么建议吗?提前致谢。
后缀和前缀的总数超过100,表示它们的效果更好?阵列?正则表达式?请问有什么建议吗?
public static string RemoveFromEnd(this string str, string toRemove)
{
if (str.EndsWith(toRemove))
return str.Substring(0, str.Length - toRemove.Length);
else
return str;
}
这可以使用后缀,前缀怎么样?有两种后缀和前缀的快速方法吗?我的字符串太长了。
答案 0 :(得分:10)
My StringHelper class有(以及其他)方法TrimStart,TrimEnd和StripBrackets, 这对你有用
//'Removes the start part of the string, if it is matchs, otherwise leave string unchanged
//NOTE:case-sensitive, if want case-incensitive, change ToLower both parameters before call
public static string TrimStart(this string str, string sStartValue)
{
if (str.StartsWith(sStartValue))
{
str = str.Remove(0, sStartValue.Length);
}
return str;
}
// 'Removes the end part of the string, if it is matchs, otherwise leave string unchanged
public static string TrimEnd(this string str, string sEndValue)
{
if (str.EndsWith(sEndValue))
{
str = str.Remove(str.Length - sEndValue.Length, sEndValue.Length);
}
return str;
}
// 'StripBrackets checks that starts from sStart and ends with sEnd (case sensitive).
// 'If yes, than removes sStart and sEnd.
// 'Otherwise returns full string unchanges
// 'See also MidBetween
public static string StripBrackets(this string str, string sStart, string sEnd)
{
if (StringHelper.CheckBrackets(str, sStart, sEnd))
{
str = str.Substring(sStart.Length, (str.Length - sStart.Length) - sEnd.Length);
}
return str;
}
答案 1 :(得分:0)
yourString.Split(',')
。使用分隔单词而不是','
的字符,它可能是一个字符' '
yourWord.StartsWith("yourPrefix")
和
yourWord.EndsWith("yourPrefix")
答案 2 :(得分:0)
如果您无法从字典中查看哪些单词实际上是单词,那么像“premium”这样的单词将很难不被误认为是前缀。从理论上讲,你可以创建一些用于检查“mium”是否是英语单词的规则,但它永远不会完整,需要大量的工作。