2014-03-30 42 views
0

我写了一个代码来查找一个字符串中的子字符串,但我想知道是否有一个简短的方法来做到这一点,或者是否有内置功能来做到这一点。查找字符串中的子字符串

下面的代码:

import java.util.*; 
class substr 
{ 
    public static void main (String args []) 
    { 
     String str1 = new String(); 
     String str2 = new String(); 
     String str3 = new String(); 
     int check=1,k; 
     Scanner obj= new Scanner (System.in); 
     System.out.println("Enter a string"); 
     str1=obj.nextLine(); 
     System.out.println("Enter Sub String"); 
     str2=obj.nextLine(); 
     int len=str1.length(); 
     System.out.println(check); 
     for(int c = 0 ; c < len&&check!=0 ; c++) 
     { 
      for(int i = 1 ; i <= len - c&& check!=0 ; i++) 
      { 
       str3 = str1.substring(c, c+i); 
       if (str2.equals(str3)) 
       { 
        check=0; 
       } 
      } 
     } 
     System.out.println(check); 
     if (check==0) 
     { 
      System.out.println("Sub String"); 
     } 
     else if (check==1) 
     { 
      System.out.println("No"); 
     } 
    } 
} 
+2

检查[String#indexOf](http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#indexOf(java.lang.String))和[String#contains]( http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#contains(java.lang.CharSequence)) – BackSlash

+0

[String#contains](http://docs.oracle。 COM/JavaSE的/ 7 /文档/ API /爪哇/郎/ String.html#含有(java.lang.CharSequence中))? –

+0

目前还不清楚你在问什么。你实际上已经使用了substring方法。那么问题在哪里? – donfuxx

回答

1

如果你问一个办法做你的代码不(检查是否一个字符串是另一个字符串的子串),你可以使用String#contains

if(str1.contains(str2)) { 
    System.out.println("Sub String"); 
} else { 
    System.out.println("No"); 
} 


您还可以使用 String#indexOf

if(str1.indexOf(str2)>=0) { 
    System.out.println("Sub String"); 
} else { 
    System.out.println("No"); 
} 
+0

感谢您的帮助。 – user3478298

+0

@ user3478298不客气 – BackSlash