2010-02-22 36 views
5

Tôi có một String2. Tôi muốn kiểm tra xem String2 tồn tại trong String1. Chiều dài String1 có thể nhỏ hơn hoặc lớn hơn hoặc bằng String2. Ngoài ra String2 có thể là null hoặc rỗng đôi khi. Làm thế nào tôi có thể kiểm tra điều này trong mã Java của tôi?Kiểm tra chuỗi con Java

Trả lời

36

Câu trả lời rõ ràng là String1.contains(String2);

Nó sẽ ném một NullPointerException nếu String1 là null. Tôi sẽ kiểm tra rằng String1 không phải là null trước khi thử so sánh; các tình huống khác nên xử lý như bạn mong đợi.

+0

giả sử họ đang sử dụng Java 5+ – newacct

+3

Thật vậy. Tôi hy vọng rằng, trong gần sáu năm kể từ khi phát hành Java 5, chúng ta có thể nói chung làm cho giả định đó. – Brabster

+1

Um, có rất nhiều cửa hàng CNTT (bao gồm của tôi, không may) vẫn đang sử dụng Java 1.4. –

7

Bạn nên thử sử dụng String#contains.

+2

+1, để trỏ OP đến API thay vì cho phép sử dụng mã. Bằng cách này, OP buộc phải đọc API để tìm ra các tham số. Ai biết trong khi họ làm điều này họ thậm chí có thể tìm thấy các phương pháp hữu ích khác và lưu chúng từ đăng một câu hỏi khác trong diễn đàn. – camickr

+0

Cảm ơn bạn rất nhiều vì đã biết thông tin – Arav

3

Đây là một lớp thử nghiệm đơn giản:

public class Test002 { 

    public static void main(String[] args) { 

     String string1 = "Java is Great!"; 
     String string2 = "eat"; 

     if (string1 != null && string2 != null & string2.length() <= string1.length() & string1.contains(string2)) { 
      System.out.println("string1 contains string2"); 
     } 

    } 
} 
+0

Cảm ơn bạn rất nhiều vì đã thông tin – Arav

5

Đối với các phiên bản cũ hơn, bạn có thể sử dụng indexOf. Nếu string2 không nằm trong chuỗi1, indexOf sẽ cho bạn -1. Bạn cần phải đảm bảo trước rằng cả hai chuỗi không phải là null mặc dù để tránh một NullPointerException.

+0

Cảm ơn bạn rất nhiều vì đã biết – Arav

Các vấn đề liên quan