Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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);

Ответ 2

substring():

str.substring(startIndex, endIndex); 

Ответ 3

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

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

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

Ответ 5

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

Ответ 6

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

 Str.subSequence(int Start , int End)

Ответ 7

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

    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 возвращает "АМАНДРОИД". наслаждайтесь кодовым временем.:)

Ответ 8

Лучший способ получить подстроку в 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(...) используется внутреннее копирование массива внутри.

Что это:)

С уважением!