पैटर्न के स्ट्रिंग की तुलना करें

I have one string that contains String s1="1 2 7 8"

now suppose I have two string String s2="1 7 8" and String s3="1 2 8"

इसलिए उस दो तार की मेरे पहले एक से तुलना करके इसे वापस लौटना चाहिए सत्य

लेकिन जब मैं s1.contanis (s2) करता हूं तो यह गलत हो जाता है।

क्या इस प्रकार के पैटर्नों की तुलना करने का कोई और आसान तरीका है, बिना एक-दूसरे को विभाजित किए और एक-एक करके तुलना करना?

0
यह PHP [ समान_टेक्स्ट है। noreferrer "> इसे देखें ] ... वही प्रश्न यहां भी
जोड़ा लेखक Prasanth, स्रोत

7 उत्तर

यह जांचने का काम करेगा कि क्या s1 में s2 (एक स्थान से अलग) से सभी तत्व हैं:

Arrays.asList(s1.split(" ")).containsAll(Arrays.asList(s2.split(" ")));

पूरा कोड:

public class StringContainsNumbers {
    public static void main(String[] args) {
        final String s1 = "1 2 7 8";
        final String s2 = "1 7 8";
        final String s3 = "1 2 8";

        System.out.println(stringContainsNumbers(s1, s2));
        System.out.println(stringContainsNumbers(s1, s3));
    }

    private static boolean stringContainsNumbers(String s1, String s2) {
        return Arrays.asList(s1.split(" ")).containsAll(Arrays.asList(s2.split(" ")));
    }
}
5
जोड़ा
बहुत बहुत धन्यवाद, यह वही है जिसकी मुझे तलाश थी।
जोड़ा लेखक commit, स्रोत

पूरे "1 7 8" के लिए चेक को स्ट्रिंग के रूप में "1 2 7 8" है, इसलिए यह गलत है।

आपको StringTokenizer विधि का उपयोग करना चाहिए।

1
जोड़ा

s1 में निश्चित रूप से s2 नहीं है।

तुम क्या करने की कोशिश कर रहे हो ? यदि आपको वास्तविक मूल्यों की तुलना करने की आवश्यकता है, तो पूर्णांक में विभाजित और परिवर्तित करें

1
जोड़ा
वह समझता है कि यह गलत है। सवाल यह है कि यह कैसे करना है। अगर वह जानना चाहता है कि क्या कोई पुस्तकालय है जो इस का समर्थन करता है। वह जानता है कि यह स्ट्रिंग को पुनरावृत्त करने के माध्यम से किया जा सकता है।
जोड़ा लेखक zerocool, स्रोत

<�कोड> में विधि शामिल है स्ट्रिंग </कोड> केवल सच है यदि s1 में पूरी तरह से s2 शामिल है दूसरे शब्दों में

 String s1 = "hello world";
 s1.contains( "llo" );

सच लौटेगा लेकिन

 s1.contains( "ll w" );

झूठे लौटेगा।

आपको s1 और s2 दोनों को टोकना होगा और फिर जांचना होगा कि s1 तत्वों में सभी s2 तत्व हैं।

0
जोड़ा

you can do Google search "Java - String matches() Method" You are going to find many links. One of them is: http://www.tutorialspoint.com/java/java_string_matches.htm

0
जोड़ा

निम्नलिखित कोड का उपयोग करें:

public class Main {
 public static void main(String[] args) {
    String one="1 7 8";
    String two= "1 2 8";
    List fistList= Arrays.asList(one.split(" "));
    List secondList= Arrays.asList(two.split(" "));
    boolean isContainAll=fistList.containsAll(secondList);
    System.out.println(isContainAll);
 }
}
0
जोड़ा

क्योंकि जब आप s1.contains (s2) का उपयोग करते हैं, तो यह स्ट्रिंग में एकल अक्षरों की तुलना नहीं करता है बल्कि पूरे स्ट्रिंग की तुलना करता है। उदाहरण के लिए, यदि s1 का मान "2 1 7 8" है तो s1.contains (s2) सही लौटेगा।

0
जोड़ा