स्ट्रिंग (इंडेक्स) की तुलना [डुप्लिकेट]
उदाहरण के लिए सटीक सूचकांक के साथ दो सरणियों की तुलना कैसे करें
String[] test1 = {"a","b","c","d"};
String[] test2 = {"a","b","c",""};
मैंने यह कोशिश की
for (int i = 0; i < test1.length; i++) {
for (int j = i; j < test2.length; j++) if (i==j) if (i == j && test2[j] == "" ) {do stuff}
}
// but always give true
अब अगर test1 के लिए index 0 पर तुलना शुरू होती है, तो इसे test2 के लिए index 0 के साथ ही तुलना की जानी चाहिए। मैं खाली इंडेक्स (उदाहरण के लिए test2 के लिए इंडेक्स 3 जो test1 index 3 से संबंधित है) को ढूंढना चाहता हूं और कुछ सामान करना चाहता हूं
मैं बहुत कुछ पढ़ता हूं लेकिन मुझे कुछ कठिनाइयां हैं, अग्रिम धन्यवाद।
जवाब
जो मैं समझता हूं, आप दो सरणियों की तुलना करना चाहते हैं जो समान आकार नहीं हो सकती हैं, और यदि वे नहीं हैं, तो केवल सबसे छोटे आकार तक की तुलना करें? आप ऐसा कुछ कर सकते हैं:
boolean equals = true;
for(int i = 0; i < test1.length && i < test2.length; i++) {
if(!test1[i].equals(test2[i])) {
equals = false;
break;
}
}
.equals()
स्ट्रिंग्स की तुलना करने के लिए उपयोग करें। ==
का उपयोग प्राथमिकताओं की तुलना करने के लिए किया जाता है।
इसके लिए 2 छोरों की भी आवश्यकता नहीं है।
for(int i = 0; i < test1.length; i++){
if(test1[i].equals("")||test2[i].equals(""){
//Do something
}
}
जब आप जावा में स्ट्रिंग्स की तुलना कर रहे हैं तो आपको वस्तुओं का उपयोग करना चाहिए क्योंकि वे ऑब्जेक्ट हैं। इसके अलावा, दो छोरों का कोई मतलब नहीं है। बस यह प्रयास करें:
for (int i = 0; i < test1.length; i++) {
if (test2[i].equals("") ) {do stuff}
}
Arrays.java के deepEquals () का उपयोग करें:
import java.util.Arrays;
String[][] s1 =
{
{"A", "B", "C"},
{"X", "Y", "Z"}
};
String[][] s2 =
{
{"A", "B", "C"},
{"X", "Y", "Z"}
};
System.out.println("deepEquals() returns " + Arrays.deepEquals(s1, s2));
आउटपुट: deepEquals () सही है