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

.length() vs .getText(). length() vs .getText(). toString(). length()

Например, в коде ниже a и b и c равны.

EditText editText;
editText = (EditText) findViewById(R.id.edttxt);

editText.setText("1234");

int a, b, c;
a = editText.length();
b = editText.getText().length();
c = editText.getText().toString().length();

В чем разница между length() и getText().length() и getText().toString().length()?

4b9b3361

Ответ 1

.length() и getText().length() идентичны в их текущей реализации.

.getText().toString().length() преобразует CharSequence в простой String, а затем вычислит его длину. Я бы ожидал, что во многих случаях вернуть то же значение, что и два других. Однако, если CharSequence является чем-то вроде SpannedString, я не могу исключить, что существует некоторый тип диапазона форматирования (например, ImageSpan), который влияет на вычисления длины.

Ответ 2

Это вопрос производительности. length будет делать то же самое, что и getText и length, это просто избавит вас от ввода getText(). Из класса TextView, который EditText расширяет:

public CharSequence getText() {
    return mText;
}

/**
 * Returns the length, in characters, of the text managed by this TextView
 */
public int length() {
    return mText.length();
}

Что касается toString, это то же самое, однако любое преобразование, которое вы делаете (CharSequence = > String), будет стоить вам небольшой производительности (так мало вы, вероятно, не заметите его).

Кроме того, когда вы конвертируете вещи, вам нужно искать исключения с нулевым указателем, возможно, не в этом случае, но, вообще говоря.

Чтобы ответить на вопрос, просто используйте length()

Ответ 3

  • length(): - length() function - это унаследованный метод для EditView, который наследуется TextView, который возвращает длину в символах текста, управляемого этим EditView. Таким образом, он вернет длину текста, который пользователь помещает в EditView Contorl.

  • getText().length(): - здесь в этой функции length() функция не принадлежит классу EditView. В действительности эта функция length() принадлежит классу CharSequence, потому что getText() возвращает объект CharSequence. Итак, снова эта функция length() вернет число символов в этой последовательности.

  • .getText().toString().length(): - здесь toString() метод Преобразовать объект CharSequence в простой неизменяемый объект String. Итак, здесь length() функция принадлежит классу String, которые также возвращают длину объекта String