2009-03-26 25 views

Trả lời

11

Sử dụng một biểu thức chính quy và đánh dấu nó như là trường hợp nhạy cảm:

if (myStr.matches("(?i).*template.*")) { 
    // whatever 
} 

Các bật trường hợp vô hồn và * ở mỗi đầu của trận đấu từ khóa tìm kiếm (i?). mọi ký tự xung quanh (kể từ String.matches hoạt động trên toàn bộ chuỗi).

+2

Tôi yêu regexes nhưng một chút quá mức cần thiết trong trường hợp đó – siukurnin

+0

@CoverosGene khi tôi thêm mã này để tìm kiếm cột trong jtable của tôi sau đó mã này hoạt động hoàn hảo nhưng có một vấn đề mà thay vì tìm kiếm các yếu tố hàng đầu nhất của String bit tìm kiếm các yếu tố xuống nhất đầu tiên? Bạn có thể cho tôi biết những gì tôi đang làm sai? –

31

String.indexOf(String)

Đối với một trường hợp tìm kiếm không nhạy cảm, để toUpperCase hoặc toLowerCase trên cả chuỗi gốc và chuỗi trước khi indexOf

String full = "my template string"; 
String sub = "Template"; 
boolean fullContainsSub = full.toUpperCase().indexOf(sub.toUpperCase()) != -1; 
+0

+1 và tôi đang xóa câu trả lời của mình. Của bạn là tốt hơn cho cả hai phần của câu hỏi. –

+0

Tất nhiên nếu bạn có kế hoạch làm nhiều so sánh đừng quên lưu trữ một phiên bản trên của chuỗi anh ta sử dụng nhiều nhất – siukurnin

3

Bạn có thể sử dụng indexOf() và toLowerCase() để làm trường hợp các xét nghiệm không nhạy cảm cho các chất nền.

String string = "testword"; 
boolean containsTemplate = (string.toLowerCase().indexOf("template") >= 0); 
1
String word = "cat"; 
String text = "The cat is on the table"; 
Boolean found; 

found = text.contains(word); 
Các vấn đề liên quan