String и StringBuilder

270
26 ноября 2016, 19:14
public class Program {
public static void main(String[] args) {
    StringBuilder alphabet = new StringBuilder("абвгдеёжзийклмнопрстуфхцчшщъыьэюя ");
    String text= "привет меня зовут антон я программист Java";
    StringBuilder textResult = new StringBuilder(text);
    for(int i =0; i< text.length(); i++)
    {
        textResult.insert(i, alphabet.indexOf(____text[i]____ // Здесь выдает ошибку Array type expected; found java.lang.String));
    }
       System.out.print(textResult);
   }
}

В коде я расписал где эта ошибка и что пишет. Суть программы - менять буквы в тексте на их порядковый номер в алфавите.

Answer 1

у тебя text типа String - это не массив!!! можно сделать примерно так:

  public class Program {
public static void main(String[] args) {
StringBuilder alphabet = new StringBuilder("abcdef");
String text= "abc def adddd ef";
String text1 = text.replaceAll(" ", "");
char[] ch = text1.toCharArray();
StringBuilder textResult = new StringBuilder();
for(int i = 0; i < ch.length; i++)
{
  textResult.append(alphabet.indexOf(String.valueOf(ch[i])) + 1);
}
 System.out.print(textResult);
} 
}
Answer 2

StringBuilder тут не имеет смысла использовать, используйте обычную строку. Также можете использовать метод substring, чтобы получить i-й символ строки text:

String alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя ";
String text= "привет меня зовут антон я программист Java";
StringBuilder textResult = new StringBuilder(text);
for(int i = 0; i < text.length(); i++) {
    textResult.insert(i, alphabet.indexOf(text.substring(i, i+1)));
}
System.out.println(textResult);

Тест на ideone.

READ ALSO
Помогите распарсить музыку на стене в ВК

Помогите распарсить музыку на стене в ВК

Помогите распарсить музыку на стене в ВК(Делаю ленту новостей группы

372
could not load library &ldquo;libstdc++.so.6&rdquo; при System.loadLibrary в Android

could not load library “libstdc++.so.6” при System.loadLibrary в Android

Когда я пытаюсь сделать SystemloadLibrary("MyLib"); в андроид в статик блоке происходит следующее:

358
Таймер обратного отсчета на Java [закрыто]

Таймер обратного отсчета на Java [закрыто]

Надо сделать таймер вида HH:MM:SS на Java обратного отсчета по такому принципу действия:

480
Условие выбора категорий

Условие выбора категорий

У меня есть фрагмент со списком категорий:

306