Строковая ошибка "слишком длинная строка"

Текст, содержащий 100 000 символов, должен отображаться. Если я помещаю его в объект String, я получаю сообщение об ошибке «constant string too long». То же самое с объектом StringBuffer.

StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("Long text here........"); //<-- error 

Есть ли решение для этого, помимо сокращения текста на более мелкие тексты?

Я думаю, что длина константных строк в java ограничена 64 КБ – однако вы можете построить строку во время выполнения, превышающую 64 КБ.

Да постоянная строка имеет предел в java.

Итак, что вы можете сделать, это скопировать строку String в текстовый файл и вставить ее в корневую папку Assets и прочитать из файла следующим способом.

 public String ReadFromfile(String fileName, Context context) { StringBuilder returnString = new StringBuilder(); InputStream fIn = null; InputStreamReader isr = null; BufferedReader input = null; try { fIn = context.getResources().getAssets() .open(fileName, Context.MODE_WORLD_READABLE); isr = new InputStreamReader(fIn); input = new BufferedReader(isr); String line = ""; while ((line = input.readLine()) != null) { returnString.append(line); } } catch (Exception e) { e.getMessage(); } finally { try { if (isr != null) isr.close(); if (fIn != null) fIn.close(); if (input != null) input.close(); } catch (Exception e2) { e2.getMessage(); } } return returnString.toString(); } 

Строки Дольше, чем 64k, запрещено использовать непосредственно в java, но вы можете использовать их косвенно.

  • Шаг 1) нажмите на строку
  • Шаг 2) нажмите клавиши Alt + Enter вместе
  • Шаг 3) Выберите Extract String resource
  • Шаг 4) Назовите ресурс и нажмите клавишу ввода.

Вот и все. Он будет генерировать строку для вас в strings.xml Если у вас уже есть строка в strings.xml вы можете использовать этот код для его получения:

 String yourStr = getString(R.string.sampleBigString);