문자열 배열에서 복제본을 제거하려고하는데 분할 문자열을 사용하여 배열에서 문자열을 얻은 다음 카운터 방법을 사용하여 중복 개수를 계산했습니다. 내가 잘못한 것을 이해하지 못한다.Java의 중복 문자열 배열
public class Program {
public static void uniqWords(String s){
String[] sentence = s.split(" ");
int[] counter = new int[sentence.length];
for(int i=0; i< sentence.length; i++){
for(int j=i+1; j<sentence.length; j++){
if(sentence[i] == sentence[j]){
counter[i] =1;
}
}
}//
for(int i=0; i<counter.length; i++){
System.out.print(counter[i] + ",");
}
for(int i =0; i<sentence.length; i++){
if(counter[i] == 1){
sentence[i] = "";
}
}
//print
for(int i=0; i<sentence.length; i++){
System.out.print(sentence[i]);
System.out.print(" ");
}
//
}
public static void main(String[] args) {
// TODO Auto-generated method stub
uniqWords("Spring in in Paris");
}
}
당신은 실제로 아무 것도 세지 않습니다. 당신이 뭔가를 찾을 때마다 카운터를 "1"로 설정하고 있습니다. 또한 : 프로그램을 디버그하십시오. 이와 같은 오류를 발견하면 디버거가 필요합니다. Spoiler : 문자열을 java의''==''와 비교하지 마십시오. – f1sh
@KevinEsche - 배열을 집합으로 변환 한 후 어떻게 문장을 재구성하겠습니까? 그 이후로 "중복 된 문장 *을 문장에서 제거하는 것"이 수반 될 것입니다. –
@MarkAdelsberger를 다시'String' 배열로 변환하면됩니까? – SomeJavaGuy