Я пытаюсь улучшить свои навыки кодирования и наткнулся на эту задачу:
«Цель этого упражнения состоит в том, чтобы преобразовать строку в новую строку, где каждый символ в новой строке -« («Если этот символ появляется только один раз в исходной строке или '), если этот символ появляется более чем раз в оригинальной строке. Нежеревая капитализация при определении того, что у дубликата. Появится: < /p>
Исключение в потоке «Main» java.util.regex.patternsyntaxExexception: Unclosed Near Index 1
(
< /p>
Я не совсем понял, почему это не так, как это не так, как я не могу использовать, но я не могу использовать, но я не могу, но я не могу использовать, но я не могу использовать, но я не могу использовать их, но я не могу использовать, но я не могу использовать, но я не могу использовать. Close, который прокомментируется в коде ниже) Почему я пытаюсь достичь, и он работает для струн, которые не содержат особых персонажей, таких как пробелы и скобки. />
import java.util.HashMap;
public class DuplicateEncoder {
static String encode(String word) {
HashMap replaceMap = new HashMap();
char[] charArray = word.toLowerCase().toCharArray();
for (char c : charArray) {
if (!replaceMap.containsKey(c)) {
int count = 0;
for (char c2 : charArray) {
if (c2 == c) {
count++;
}
}
if (count > 1) {
replaceMap.put(c, ')');
} else {
replaceMap.put(c, '(');
}
}
}
String result = word.toLowerCase();
for (char c : replaceMap.keySet()) {
// if(result.indexOf(c)>=0) {
result = result.replaceAll(Character.toString(c), Character.toString(replaceMap.get(c)));
// }
}
return result;
}
public static void main(String[] args){
String s = "Prespecialized";
System.out.println(DuplicateEncoder.encode(s));
s = " ()( ";
System.out.println(DuplicateEncoder.encode(s));
}
}
Подробнее здесь: https://stackoverflow.com/questions/466 ... ing-not-wo