vb

2009-05-23 9 views
13

में स्ट्रिंग की तुलना करना उम्मीद है कि यह एक आसान सवाल होना चाहिए। जावा में मुझे लगता है कि यह compareTo() है।vb

मैं यह निर्धारित करने के लिए 2 स्ट्रिंग चर की तुलना कैसे करूं कि वे समान हैं या नहीं?

अर्थात्:

If (string1 = string2 And string3 = string4) Then 
    'perform operation 
Else 
    'perform another operation 
End If 
+0

यह "क्लासिक" vb या vb.net है? –

+0

विज़ुअल वेब डेवलपर 2008 में से एक। Vb.net मुझे लगता है कि –

उत्तर

16

मैं String.Compare पद्धति का उपयोग करके सुझाव है। उस विधि का उपयोग करके आप यह भी नियंत्रित कर सकते हैं कि इसे केस-संवेदनशील तुलना करना है या नहीं।

नमूना:

Dim str1 As String = "String one" 
Dim str2 As String = str1 
Dim str3 As String = "String three" 
Dim str4 As String = str3 

If String.Compare(str1, str2) = 0 And String.Compare(str3, str4) = 0 Then 
    MessageBox.Show("str1 = str2 And str3 = str4") 
Else 
    MessageBox.Show("Else") 
End If 

संपादित करें:

If String.Compare(str1, str2, StringComparison.InvariantCultureIgnoreCase) = 0 And String.Compare(str3, str4, StringComparison.InvariantCultureIgnoreCase) = 0 Then 
+3

यह उत्तर अनावश्यक रूप से जटिल है। यदि मामला मायने रखता है, तो बस "str1 = str2" करें। मामले को अनदेखा करने के लिए, "स्ट्रिंग। एक्वाल्स (स्ट्र 1, स्ट्र 2, स्ट्रिंग कॉम्परिसन। इन्विरिएंट कल्चर इग्नोरकेस)" करें। या जो भी स्ट्रिंग कॉम्पर्सन संस्करण आपके कार्य के लिए उपयुक्त है। 'तुलना करें 'का उपयोग करने की कोई आवश्यकता नहीं है, जो क्लस्टर कोड' = 0' के साथ है। और कोड के इरादे के बारे में थोड़ा और सोचने के लिए पाठक की आवश्यकता होती है। 'बराबर' इरादा स्पष्ट करता है। केवल 'समय' का उपयोग करने का समय तब होता है जब '0' के अलावा अन्य मानों की आवश्यकता होती है (सॉर्टिंग)। – ToolmakerSteve

+1

यह दिलचस्प है कि 'String.Compare (str1, str2)' बराबर होने पर 'गलत' होता है, और 'True' जब वे बराबर नहीं होते हैं। – Panzercrisis

+1

@ पैन्जरक्रिसिस आप मुझे बता रहे हैं!मैंने इस जवाब में पर्याप्त रूप से नहीं पढ़ा और = 1 सोच = 1 का एक टन सच साबित हुआ ... मैं टूलमेकर स्टेव की सलाह बराबर का उपयोग करके अस्वीकार करने की सलाह ले रहा हूं। मैं इसे "रोचक" के रूप में नहीं देखता जैसा आपने कहा था, अगर आप पहले कभी कोडित करते हैं, तो मैं इसे लगभग भ्रमित और गैर सहज समझता हूं, जहां लगभग सभी मामलों में 0 = झूठी और 1 = सच है। – whyoz

11
Dim MyString As String = "Hello World" 
Dim YourString As String = "Hello World" 
Console.WriteLine(String.Equals(MyString, YourString)) 

रिटर्न एक bool यह सच है: यदि आप एक केस-संवेदी खोज आप StringComparison पैरामीटर का उपयोग कर सकते हैं प्रदर्शन करने के लिए चाहते हैं। यह तुलना केस-संवेदी है।

अपने उदाहरण में

तो,

if String.Equals(string1, string2) and String.Equals(string3, string4) then 
    ' do something 
else 
    ' do something else 
end if 
+0

यह काम नहीं करता है! माफ़ कीजिये! –

+0

मुझे इसे यहां से मिला: http://msdn.microsoft.com/en-us/library/fbh501kz(VS.80).aspx –

+1

FYI, यह ठीक काम करता है - मैं इसे हर समय उपयोग करता हूं। यद्यपि vb.net और नए में, आमतौर पर "और" के बजाय "AndAlso" का उपयोग किया जाता है, केवल आवश्यक होने पर दूसरी तुलना करने के लिए ("शॉर्ट-सर्किट मूल्यांकन")। – ToolmakerSteve

9

vb.net में आप वास्तव में = साथ तार की तुलना कर सकते हैं। भले ही String एक संदर्भ प्रकार है, vb.net = पर String पर दो स्ट्रिंग्स के सामग्री की केस-संवेदी तुलना करने के लिए फिर से परिभाषित किया गया है।

आप निम्न कोड के साथ इसका परीक्षण कर सकते हैं। ध्यान दें कि मैंने उपयोगकर्ता इनपुट से मानों में से एक लिया है ताकि यह सुनिश्चित किया जा सके कि कंपाइलर जावा कंपाइलर जैसे दो चर के लिए समान संदर्भ का उपयोग नहीं कर सकता है, यदि वैरिएबल को समान स्ट्रिंग से परिभाषित किया गया था। प्रोग्राम चलाएं, "यह" टाइप करें और < दबाएं > दर्ज करें।

Sub Main() 
    Dim a As String = New String("This") 
    Dim b As String 

    b = Console.ReadLine() 

    If a = b Then 
     Console.WriteLine("They are equal") 
    Else 
     Console.WriteLine("Not equal") 
    End If 
    Console.ReadLine() 
End Sub 
-3
If String.Compare(string1,string2,True) Then 

    'perform operation 

EndIf 
+0

ऐसा लगता है कि कुछ साल पहले स्वीकृत उत्तर के रूप में लगभग उतना ही विस्तार नहीं है। इसे पोस्ट करने के लिए कोई विशेष कारण? –

0

मैं इस उत्तर दिया गया है पता है, लेकिन 2013 के ऊपर VB.net (सबसे कम मैं व्यक्तिगत रूप से उपयोग किया है) में आप सिर्फ एक = ऑपरेटर के साथ तार की तुलना कर सकते हैं। यह सबसे आसान तरीका है।

तो मूल रूप से:

If string1 = string2 Then 
    'do a thing 
End If 
0

मुझे लगता है कि इस String.Equals तुम क्या जरूरत है।

Dim aaa = "12/31" 
      Dim a = String.Equals(aaa, "06/30") 

एक झूठी वापसी होगी।

संबंधित मुद्दे