Я создал функцию, которая принимает два объекта String. Метод возвращает массив символов, содержащий один элемент для каждого вхождения алфавитного символа, который появляется только в двух строках. Любые неалфавитные символы в любой строке игнорируются.Анализ строк и сравнение
public static void main(String[] args) {
System.out.println(alphabetize("ABc","abC"));
}
static String alphabetize(String one, String two) {
String result = one + two;
String expression = "^[a-zA-Z]*$";
CharSequence inputStr = result;
Pattern pattern = Pattern.compile(expression);
Matcher matcher = pattern.matcher(inputStr);
if(matcher.matches()) {
char[] chars = result.toCharArray();
Set<Character> charSet = new LinkedHashSet<Character>();
for (char c : chars) {
charSet.add(c);
}
StringBuilder sb = new StringBuilder();
for (Character character : charSet) {
sb.append(character);
}
return (sb.toString());
} else {
return null;
}
}
Прежде всего, как я могу отсортировать массив в пути, возвращающее значение становится в алфавитном порядке, со всеми прописными буквами, появляющихся перед любой строчной буквой. Кроме того, дело имеет значение и должно приниматься во внимание. Например, если для строк «aBA» и «abA» функция должна возвращать массив, состоящий из {'B', 'b'}, потому что во второй строке нет прописной буквы B, и в строке нет буквы «b» первая строка. Кроме того, несколько случаев являются релевантными и должны приниматься во внимание. Например, если для строк «aba» и «ba» функция должна возвращать массив, состоящий из {'a'}, потому что символ «a» появляется во второй строке только один раз.
Пример:
Можно ли вести меня по решению проблемы? моя горстка опыта в java не несет меня к решению.
Если результирующий массив состоит из { 'A', 'а', 'B', 'б'}, вы хотите сортируется таким образом, или Вы хотите { 'A', 'B', 'а', 'б'}? – Zircon
Пожалуйста, приложите усилия к форматированию вашего кода - сейчас он повсюду. –
@JonSkeet Извините, Джон, разве он уже отформатирован? –