Intereting Posts
Android – проверьте наличие другого приложения Android – Пользовательская рейтинговая панель выглядит как ее кровотечение Использование navigator.geolocation.getCurrentPosition в WebView на Android 2.0+ (связанный с PhoneGap) Android Studio: как создать горячую клавишу для очистки logcat? Получение размера изображения для создания растрового изображения Настройки Android onclick Примеры с открытым исходным кодом для хорошо разработанных приложений для Android? В вашем проекте содержатся ошибки (ошибки), пожалуйста, исправьте его перед запуском Что такое прецедент для фрагмента без пользовательского интерфейса? Отключить прокрутку ListView, содержащегося в ScrollView Есть ли список того, какое устройство имеет то, что отделяет dpi и размер экрана? Содержимое WebView wrap-content Как записывать видео с определенной шириной и высотой на Android-устройстве samsung? Как открыть страницу фрагмента при нажатии уведомления в android «Холст: попытка рисовать слишком большое растровое изображение», когда размер экрана Android N установлен больше, чем Small

Извлечь подстроку из строки

Каков наилучший способ извлечения подстроки из строки в android?

Solutions Collecting From Web of "Извлечь подстроку из строки"

Если вы знаете индекс начала и конца, вы можете использовать

String substr=mysourcestring.substring(startIndex,endIndex); 

Если вы хотите получить подстроку от определенного индекса до конца, вы можете использовать:

 String substr=mysourcestring.substring(startIndex); 

Если вы хотите получить подстроку от определенного символа до конца, вы можете использовать:

 String substr=mysourcestring.substring(mysourcestring.indexOf("characterValue")); 

Если вы хотите получить подстроку после определенного символа, добавьте это число в .indexOf(char) :

 String substr=mysourcestring.substring(mysourcestring.indexOf("characterValue") + 1); 

substring() :

 str.substring(startIndex, endIndex); 

Вот пример реального мира:

 String hallostring = "hallo"; String asubstring = hallostring.substring(0, 1); 

В примере asubstring вернется: h

Использовать текст unold class от android:
TextUtils.substring (charsequence source, int start, int end)

Вы можете использовать subSequence, это то же самое, что и substr в C

  Str.subSequence(int Start , int End) 

Есть и другой способ, если вы хотите получить строку sub до и после символа

 String s ="123dance456"; String[] split = s.split("dance"); String firstSubString = split[0]; String secondSubString = split[1]; 

Проверьте это сообщение, как найти до и после подстроки в строке

Вы можете использовать этот код

  public static String getSubString(String mainString, String lastString, String startString) { String endString = ""; int endIndex = mainString.indexOf(lastString); int startIndex = mainString.indexOf(startString); Log.d("message", "" + mainString.substring(startIndex, endIndex)); endString = mainString.substring(startIndex, endIndex); return endString; } 

В этой mainString есть супер string.like «I_AmANDROID.Devloper», а lastString – строка типа «.». И startString как «_». Поэтому эта function возвращает «Аманда». Наслаждайтесь кодовым временем. 🙂

Лучший способ получить подстроку в Android – использовать (как сказал @ user2503849) TextUtlis.substring(CharSequence, int, int) . Я могу объяснить, почему. Если вы посмотрите на метод String.substring(int, int) из android.jar (новейший API 22), вы увидите:

 public String substring(int start) { if (start == 0) { return this; } if (start >= 0 && start <= count) { return new String(offset + start, count - start, value); } throw indexAndLength(start); } 

Ок, а … Как вы думаете, как выглядит частный конструктор String(int, int, char[]) ?

 String(int offset, int charCount, char[] chars) { this.value = chars; this.offset = offset; this.count = charCount; } 

Как мы видим, он ссылается на массив «old» value char[] . Таким образом, GC не может его освободить.

В новейшей Java было исправлено:

 String(int offset, int charCount, char[] chars) { this.value = Arrays.copyOfRange(chars, offset, offset + charCount); this.offset = offset; this.count = charCount; } 

Arrays.copyOfRange(...) использует встроенный массив, копирующий внутри.

Это оно 🙂

С наилучшими пожеланиями!