Изучаю 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 хранит данные в формате Ключ-значение. При этом, поиск по ключу занимает константное, достаточно короткое время (есть правда худший случай, когда за линейное, но здесь это не так важно).
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добился того, чтобы клавиатура при появлении сдвигала Layout, который над ней, добавив в манифест android:windowSoftInputMode="adjustResize"Потом, мне понадобилось...
Собственно говоря есть такая задача, есть ресурс ( он не секретный - http://ruzditesteisnot