Рубрики
Без рубрики

Метод длины строки Java()

Метод Java String length() возвращает длину этой строки. Длина равна единицам кода Юникода в строке. Как получить длину строки в Java.

Автор оригинала: Pankaj Kumar.

Функция Java String length() возвращает длину последовательности символов, представленных этим объектом.

Длина строки Java

Иногда нам приходится получать длину строки в java-программах, ниже фрагмент кода показывает, как это сделать.

String str = "journaldev";
		
System.out.println("String length is "+str.length());

Приведенный выше фрагмент будет выдавать результат в виде:

String length is 10

Допустим, у нас есть функция для печати длины строки, как показано ниже.

public static void printStringLength(String s){
	System.out.println("input string length is "+s.length());
}

Можете ли вы догадаться, в чем проблема с вышеуказанной функцией? Ну, это может привести к исключению NullPointerException , если кто-то вызывает эту функцию, передавая строковое значение как null . Ниже приведена лучшая реализация, позволяющая избежать исключения NullPointerException.

public static void printStringLength(String s){
	if(s == null) return;
	System.out.println("input string length is "+s.length());
}

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

Длина строки Java для представления в Юникоде

Если вы посмотрите на javadoc метода String length () , то увидите, что длина равна количеству кодовых единиц Юникода в строке. Что это значит? Давайте рассмотрим небольшой фрагмент кода, чтобы легко понять значение этого утверждения.

String str1 = "\u00A9"; //copyright character
		
System.out.println("String length is "+str1.length());

Когда вы запустите вышеуказанную программу, длина строки будет напечатана как 1. В java мы можем использовать символы Юникода для определения строки, а выше юникода-для символа авторского права. Следовательно, длина строки равна 1, и если вы попытаетесь ее распечатать, она будет отображаться как © .

Вот окончательная программа длины строки java.

package com.journaldev.string;

public class JavaStringLength {

	public static void main(String[] args) {
		String str = "journaldev";

		System.out.println("String length is " + str.length());

		String str1 = "\u00A9";

		System.out.println("Unicode String length is " + str1.length());

		System.out.println("Unicode string value = "+str1);

		printStringLength(null);
	}

	public static void printStringLength(String s) {
		if (s == null)
			return; // do nothing
		System.out.println("input string length is " + s.length());
	}
}

На рисунке ниже показан результат, полученный вышеуказанной программой.

Длина строки Java без использования функции length()

Это очень интересный вопрос для интервью, есть много альтернативных и не рекомендуемых способов получить длину строки. Давайте просто посмотрим на них, они хороши для аргументации, но не используются в производственной среде.

Преобразование в массив символов и нахождение длины

public static int getStringLength(String s) {
	int count = 0;
	char [] ca = s.toCharArray();
	for (char c : ca) {
		count++;
	}
	return count;
}

Длина вызова массива символов

public static int getStringLength(String s) {
	return s.toCharArray().length;
}

Используя функцию String lastIndexOf() умно

public static int getStringLength(String s) {
	return s.lastIndexOf("");
}

Я уверен, что будут и другие забавные способы найти длину строки без использования функции length (), я думаю, что приведенные выше самые простые. Это все для примера программы длины строки java.

Ссылки: API Doc , Статья StackOverflow