我想删除的话它与这些字符串如何删除以此词结尾的单词?
hello_hi
sorry_hr
good_tt
我想删除与_tt
,_hr
结束的话结束。怎么做?
is this is good way?
String word = word.replace("_hi", "");
我想删除的话它与这些字符串如何删除以此词结尾的单词?
hello_hi
sorry_hr
good_tt
我想删除与_tt
,_hr
结束的话结束。怎么做?
is this is good way?
String word = word.replace("_hi", "");
所以,你有一个字符串,如:
String str = "hello_hi sorry_hr good_tt";
那么你一定要总结这三个规则如何被应用:
1)拆下hello_hi因为它与_hi
结束2)删除_hr并保留字,对于这种特殊情况,它会保持对不起
3)保持good_tt,因为它有没有* _hi或* _HR形式,但* _TT
然后,最后一个字符串将是 “对不起good_tt”
让我们做
String[] strings = str.split(" ");
ArrayList processed = new ArrayList();
for (String token : strings) {
if (token.endsWith("_hr")){ //rule 2
processed.add(token.replace("_hr", ""));
} else if (token.endsWith("_hi")) { //rule 1
continue;
} else { //any other case, rule 3
processed.add(token);
}
}
这样的话,你将不得不在处理列表的结果:“对不起”和“good_tt”
System.out.println(processed.toString());
获取以下输出:
[sorry, good_tt]
没用。仍然打印相同 – user2150249 2013-03-09 02:02:55
你是什么意思?你能澄清吗?我已尽力理解您的问题并准备一个循序渐进的答案,请随时在任何不正确的部分进行编辑。答案是社区维基类,所以你可以编辑它! – emecas 2013-03-09 02:21:04
String[] tokens = str.split(" ");
List<String> good = Lists.newArrayList();
for (String token : tokens) {
if (token.endsWith("_hr") || token.endsWith("_tt")) continue;
good.add(clip_end(token));
}
join(good);
String clip_end(String str)
应将_hi关闭。这只是对indexOf和substring的简单调用。
String join(List<String> strs)
只是连接空格。
本着SO的精神,你可以写剪辑和连接。如果还有额外的功劳,请用StringBuilder替换good
列表并直接将输出写入它。
我假设你有一个字符串,其中包含你的令牌,结束于例如_tt
并且您想要从该字符串中删除该单词。
String[] tokens = yourStr.split(" ");
for (String t : tokens) {
if (t.endsWith("_tt") {
yourStr = yourStr.replaceAll(t, "");
}
}
这不起作用的正则表达式混淆。 – 2013-03-08 23:58:16
是否要保留该单词并删除标记'_hi'和'_hr'? – 2013-03-08 23:48:23
你想删除某处的文字吗?或者实际上你想要的是消除单词的结尾? – emecas 2013-03-08 23:49:31
我想删除这样结束的整个单词。另外我想删除我想保留的令牌。 – user2150249 2013-03-08 23:50:44