gpt4 book ai didi

java - 从字符串数组中仅删除重复单词的一个频率

转载 作者:行者123 更新时间:2023-11-30 03:51:26 25 4
gpt4 key购买 nike

我有一个字符串数组

String a = "This is a life and our life will be full of fun just like the Benn Steller's Secret life of Walter Mitty.";

String a1[]=a.split(" ");
for(String temp: a1)
{
System.out.println(temp);
}

这里“生命”重复了三遍。现在我只需删除重复单词形式数组的一个频率。

请指导我......

谢谢。

最佳答案

您可以使用类似的内容,但这只会删除第一次出现的指定单词:

删除一个重复项的完整代码。您需要知道它不会忽略特殊字符,在这种情况下空格是分隔符。

public static void main(String []args){
String a = "This is a life and our life will be full of fun just like the Benn Steller's Secret life of Walter Mitty Mitty";
System.out.println(removeOneDuplicate(a));
}

public static String removeOneWord(String str, String word){
int value = str.indexOf(word);
String result = str.substring(0, value);
result += str.substring( value+word.length(), str.length());
return result;
}

public static String removeOneDuplicate(String a){
String [] tmp = a.split(" ");
Map<String, Integer> map = new HashMap<String, Integer>();
for(String s: tmp){
if( map.containsKey(s)){
int value = map.get(s);
if(value == 1)
a = removeOneWord(a, s);
map.put(s, value + 1);
}
else
map.put(s, 1);
}
return a;
}

结果示例:

INPUT: This is a life and our life will be full of fun just like the Benn Steller's Secret life of Walter Mitty Mitty
OUTPUT: This is a and our life will be full fun just like the Benn Steller's Secret life of Walter Mitty

结果中可以看到 lifeofMitty 被删除了。

编辑

如果您想删除所有重复项并保留第一次出现的单词更改如下:

int value = str.indexOf(word); -> int value = str.lastIndexOf(word);

int value = map.get(s); 
if(value == 1)
a = removeOneWord(a, s);
map.put(s, value + 1);

至:

a = removeOneWord(a, s);

关于java - 从字符串数组中仅删除重复单词的一个频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24359461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com