[ad_1]
あなたが私の質問を理解してくれたことを願っています – !
私は出力を期待しています –
[Mahendra, Singh, Dhoni, Virat, Singh, Tracktor, Mahendra] The dupli Strings are - Mahendra Singh
私が試したこと:
package Functions; import java.util.*; import java.util.Arrays; public class stringString { public static void main(String[] args) { String name = "Mahendra Singh Dhoni Virat Singh Tracktor Mahendra"; String[] arr = name.split(" "); System.out.println(Arrays.toString(arr)); System.out.println("The dupli Strings are - "); for(int i=0;i<arr.length;i++) { for(int j=i+1;j<arr.length;j++) { if(arr[i]==arr[j]) { System.out.println(arr[j]); } } } } }
解決策 1
ジャワ
if(arr[i]==arr[j]) {
上記のコードは、2 つの参照を比較します。 文字列を比較するには、equals メソッドを使用する必要があります。
ジャワ
if(arr[i].equals(arr[j])) {
解決策 2
解決策 3
これは、String クラスへのポインターではなくハッシュ コードを比較するのに適しています。
ジャワ
if (arr[i].equals(arr[j])) ...;
または、パフォーマンスの問題により、Java.util.* で HashSet
ジャワ
import java.util.HashSet; ... HashSet<String> strings = new HashSet<>(); for (int i = 0; i < arr.length; ++i) { if (strings.contains(arr[i])) { // check if it's already in the hash set System.out.println("Duplicate found: " + arr[i]); } strings.add(arr[i]); // add the string to hash set }
[ad_2]
Source link
コメント