Изучаю Java не так давно, и хочу создать простенькую библиотеку замены. И не могу точно понять какой метод использовать при этом. Мне нужно что бы цифры, заменяло на текст, при работе цикла . А колличество значений определялось длинной массива, или то что заменяло бы его. Прилагаю код, код не обрабатывает замену просто выводит цифры.
int i1=0;
String [] numbers = new String[3];
numbers[0]="1";
numbers[1]="2";
numbers[2]="3";
String[] symbols = new String[3];
symbols[0]="одИн";
symbols[1]="двА";
symbols[2]="Тры";
int LengthArray = numbers.length;
do
{
i1=i1+1; // i1++
//System.out.println(i1);
String i01 = Integer.toString(i1);
System.out.println(i01.replaceAll(numbers[i1],symbols[i1]));
}
while(i1<=LengthArray - 1);
Не совсем понял, что именно Вы хотите сделать, но если правильно уловил мысль, то вам лучше использовать ассоциативный контейнер map.
Map<Character, String> replaces = new HashMap<>();
replaces.put('1', "один");
replaces.put('2', "два");
/* ... */
for (Character c : input)
System.out.println(replaces.get(c));
В целом, ответ от @saltukkos полностью удовлетворяет Вашему условию. В качестве входных данных приходит Map, где явно обозначается соответствие цифры символу:
//Мапа для замены значений
Map<String, String> replaces = new HashMap<>();
replaces.put("1", "один");
replaces.put("2", "два");
replaces.put("3", "три");
//Исходная строка
String s = "1,2,3,4,5 ааа рпрмим";
//Переводим исходную строку в массив символов
char[] chars = s.toCharArray();
//Триггер того, что мы до сих пор собираем число из цифр
boolean isDig = false;
//Буфер числа. Сюда будем добавлять поочередно цифры, пока не кончится число
StringBuilder buffer = new StringBuilder();
//Проходим по массиву исходных символов
for (int i=0; i<chars.length;i++) {
//Если символ = цифра
if (Character.isDigit(chars[i])) {
//Добавляем цифру в буфер
buffer.append(chars[i]);
//Устанавливаем триггер
isDig = true;
} else {
//Если до этого была цифра
if (isDig) {
//Пытаемся получить из мапы значение, соотв. нашему числу
//Если такое число есть, мапа передаст в переменную его словестный аналог, иначе null
String word = replaces.get(buffer.toString());
//Если мы что-то получили из мапы
if (word != null)
//Заменяем в исходной строке число из буфера на слово
s = s.replaceAll(buffer.toString(), word);
//Заново инициализируем буфер
buffer = new StringBuilder();
}
}
}
Интерфейс Map хранит данные в формате Ключ-значение. При этом, поиск по ключу занимает константное, достаточно короткое время (есть правда худший случай, когда за линейное, но здесь это не так важно).
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости