2017-09-13 8 views
-1

したがって、基本的には、累積ループを使用して、選択した文字列にuserInputted文字列が表示されるかどうかを確認する必要があります。

下に私のコードがあり、それ以下ではテストケースとして使用しています。

public static boolean containsAll (String source, String target) 
{ 
    boolean contains = false; 
    scn = new Scanner (source); 


      String token = scn.next(); 


      if(target.contains(token) || token.isEmpty()) { 
       contains = true; 
      } 



     return contains; 
} 

これはテストケースです。最初のものは動作しませんが、残りはうまく動作します。

@Test 
public void testContainsAll() 
{ 
    assertTrue(containsAll("", "")); 
    assertTrue(containsAll("abc", "abracadabra")); 
    assertFalse(containsAll("def", "Defect")); 
    assertFalse(containsAll("x", "")); 
} 

ありがとうございます。

+0

"文字列に指定された部分文字列が含まれているかどうかをチェックするため、少なくとも部分的にターゲットに1回以上出現するかどうかを報告する"その順序または量。文字列を繰り返し処理し、他の文字列の文字が等しいかどうかを確認する必要があります。 – Pshemo

+2

'' scn.next() ''はあなたに次の文字ではなく次の文字を返します。 – f1sh

+0

OK 1秒。私はそれをrnすることを理解しようとしています。 – SassyRegards201

答えて

1

だからこそ助けてくれてありがとう。私のコードはブール変数を作成し、それを真に初期化します。次に、forループを作成して、userInputted文字列のすべての文字を繰り返します。ターゲットにその文字列の値が含まれていない場合、containsはfalseに設定されます。それ以外の場合は、以前にtrueに初期化されたものを返します。

public static boolean containsAll (String source, String target) 
{ 

    boolean contains = true; 

    for (int i = 0; i < source.length(); i++) 
    { 

     if (!target.contains(String.valueOf(source.charAt(i)))) 
     { 
      contains = false; 
     } 
    } 

    return contains; 

} 
関連する問題