2016-07-06 9 views
-1

私は最初の部分をコーディングし、サブストリングのすべての要素がメインストリングに存在するかどうか検索しますか?メインストリング内のサブストリングの検索方法と、サブストリングのすべてのエレメントがメインストリング内にあるかどうかを調べる方法

public static void main(String[] args) 
{ 
    Scanner getString = new Scanner(System.in); 
    System.out.println("provide the main string: \n"); 

    try { 
     String str1 = getString.nextLine(); 
     System.out.println("provide the sub string: \n"); 
     String str2 = getString.nextLine(); 
     if (str1.toLowerCase().contains(str2.toLowerCase())) 
     { 
      System.out.println("It is a substring"); 
     } else 
     { 
      System.out.println("It is not a substring"); 
     } 
    } 
     finally 
     { 
      getString.close(); 
     } 

} 
+1

2番目の例の例はありますか? – L01c

答えて

0

あなたは、サブ文字列のすべての文字がメインの列に存在するか否かをチェックするjava.lang.StringクラスのindexOf()メソッドを使用することができます。

ロジック:カウント変数nを初期化します。今度は、forループの部分文字列の各文字を繰り返し処理します。 indexOf()機能を使用して、各文字がメインストリングに存在するかどうかを確認します。存在する場合は、nの値を1だけ増やします。ループの外側で、n ==部分文字列の長さを確認します。 n ==部分文字列の長さの場合、部分文字列のすべての要素がメイン文字列に存在します。

次のコードを検討してください。

String main_str <--- MAIN STRING 
String sub_str <--- SUB STRING 
int n=0; 
for(int i=0; i<sub_str.length();i++){   
    if(main_str.indexOf(sub_str.charAt(i))!=-1) 
    n++; 
} 
if(n==sub_str.length()) 
System.out.println("All elements of sub string EXIST in the main string"); 
else 
System.out.println("All elements of sub string DO NOT EXIST in the main string"); 

これがあなたを助けることを願っています。

+0

は論理を持っていて、うまく動いてくれてありがたいです – Suresh

+0

コードは大文字と小文字を区別していますので、メイン文字列が 'ABCDE'でサブ文字列が' abcde'ならばサブ文字列が存在しないメインストリングの '' A '!=' a''などのように。大文字と小文字を区別しない**にするには、 'toUpperCase()'または 'toLowerCase()'関数を使ってメインとサブ文字列を同じ大文字に変換してください。 – progyammer

0

機能は既に実行していますか?あなたはstr1内のすべての文字をチェックされ、str2のすべての文字が、その後だけにしてstr1に存在する場合関数はtrueを返しますstr2のすべての文字(要素)機能を使用する場合、私は意味します。したがって、2番目のシナリオは暗黙的に関数によって処理されます。

私が間違っている場合は、私に修正してください。

+1

str1 = oracleとstr2 = acl、u rこの場合は右ですが、str2 = lcaの場合はどうなりますか? – Suresh

+0

私は確かにライブラリ関数を使用しないソリューションが必要です。そのため、このコードを書く必要があります。 – progyammer

関連する問題