gpt4 book ai didi

java - 如何找到已打印的元素并跳过它们再次打印?

转载 作者:行者123 更新时间:2023-12-01 05:05:21 25 4
gpt4 key购买 nike

相关方法如下。此方法应该采用字符串并使用 bag adt 返回项目的频率。我可以正常工作,但是如果我(例如)输入“test”,它将显示输出 T、S 和 T 及其各自的(尽管是正确的)频率。但是,我希望输出只是 T、S 及其频率。

    public int getFrequency(String str){
int index=0;
char[] nArray = new char[sArray.length];

for(int i=0;i<sArray.length; i++){
char a = sArray[i];
String s = Character.toString(a);
index = consonants.getFrequencyOf(s);
if(index != 0 && consonants.contains(s)==true){
for(int x=0;x<nArray.length;x++){
if(nArray[i] == sArray[x]){
continue;
}
else{
System.out.print(s + ": ");
System.out.println(index);
nArray[i] = sArray[i];
break;
}
}
}
}
return index;
}

最佳答案

您应该使用HashMap来存储字符及其相应的频率: -

public Map<Character, Integer> getFrequency(String str){

String vowels = "aeiouAEIOU";
Map<Character, Integer> freqMap = new HashMap<Character, Integer>();

for(int i=0;i<str.length(); i++) {

char ch = str.charAt(i);

// If character is a not consonant.. continue with next iteration

if (vowels.contains(ch)) {
continue;
}

Integer val = freqMap.get(ch);

if (val != null) {
// Put new entry in Map.. With character and count = 1

} else {
// Increment val by 1, and update the map for this character
}

}
return freqMap;
}

仅确认您的代码:-

index = consonants.getFrequencyOf(s);
if(index != 0 && consonants.contains(s)==true){

第二个条件对我来说看起来很模糊..因为如果index !=0,则意味着辅音包含s..然后为什么要再检查一次?

或者,您的 getFrequencyOf(s) 正在做一些我们看不到的检查收容之外的事情??

关于java - 如何找到已打印的元素并跳过它们再次打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12772484/

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