2012-05-16 2 views
1

Я хочу частичное согласование строки в java, напримерСтроковое частичное совпадение

String s1 = "method";

String s2 = "это замечательный метод, который я использую";

если s1 завершено в s2, то s2 возвращается. любой имеет алгоритм или другой гибкий код, спасибо заранее.

+0

вам нужен метод IndexOf в классе String? –

ответ

4

Это должно сделать трюк:

if (s2.contains(s1)) 
    return s2; 
+0

чувствительность к регистру, как чувствительность к регистру – ibraheemkhalil

+0

Да, это чувствительно к регистру. Вы можете просто создать копию строк и использовать toLowerCase(), чтобы избавиться от чувствительности к регистру. –

0

Вы можете использовать Java.String.indexOf(), как описано here.

0

Его довольно прямолинейно.

if(s2.contains(s1)){ 
    //do your stuff 
} 
0

Самый простой будет использовать String.contains как в if(s2.contains(s1)) return s2; Или вы можете использовать регулярные выражения, чтобы соответствовать

if(s2.matches("(?i).*" + s1 + ".*")) { return s2; }

Может быть немного излишним, хотя, но хорошо знать несколько различных способов сделать это.

0

Вы можете использовать метод из String класса Пожалуйста, изучите следующий пример,

public class TestClass 
{ 
    private String getString (String str1, String str2) 
    { 
     if (str2.contains (str1)) 
     { 
      return str2; 
     } 
     else 
     { 
      return "-1"; 
     } 
    } 

    public static void main (String args[]) 
    { 
     String s1 = "method"; 
     String s2 = "this is wonderful method i am using"; 

     TestClass tc = new TestClass(); 

     System.out.println (tc.getString(s1, s2)); 

    } 
} 

// Output 
// this is wonderful method i am using 
Смежные вопросы