Используя простой цикл по набору символов в первой строке:
String s1 = "This is a test";
String s2 = "This is a simple test";
Set<Character> chars = new HashSet<Character>();
for(int i = 0; i < s1.length(); i++) {
chars.add(s1.charAt(i));
}
for (Iterator<Character> iterator = chars.iterator(); iterator.hasNext();) {
Character character = iterator.next();
if(!s2.contains(character.toString())) {
// break and mark as not contained
break;
}
}
Если слова предназначены для проверки, то вы можете разделить строку вокруг пробелов на список слов:
String[] words1 = s1.split("\\s");
String[] words2 = s2.split("\\s");
List<String> wordList1 = Arrays.asList(words1);
List<String> wordList2 = Arrays.asList(words2);
System.out.println(wordList2.containsAll(wordList1));
Почему downvotes? Если вы знаете ответ, можете ли вы рассказать нам или ссылку на него? –
Вы можете попробовать разбивать обе строки с использованием пробелов и искать элементы массива. – gab06
Когда вы говорите «содержит все символы», вы имеете в виду: 1) символы в строке1 содержатся в строке2 в той же последовательности, что и дополнительные символы. 2) каждый символ в строке 1 также присутствует в строке2 независимо от количества вхождений или 3) каждый символ в строке 1 содержится как минимум столько раз в строке 2? – Svea