как написать код метода длины строки Java?

Что не так со следующим кодом, я пытаюсь написать исходный код метода длины, я попробовал его с С ++ (я имею в виду ту же логику), и он сработал, но здесь он дает мне ошибку исключения ниже: StringIndexOutOfBoundsException, спасибо за помощь . Примечание: я использую идею intellij

package com.company;
public class Main {

public static void main(String args[]) {

    String text = "hello world";
    int i = 0;
    while (text.charAt(i) != '\0') {
        i++;
    }
    System.out.println(i);
}
}

person mustafa abdo    schedule 22.06.2021    source источник
comment
Строки в java сильно отличаются от строк в c++, и поэтому логика в java не имеет никакого смысла. hg.openjdk.java.net/jdk7u/jdk7u6/jdk/file/8c2c5d63a17e/src/   -  person luk2302    schedule 22.06.2021
comment
Строки Java так не работают. У них нет символа '\ 0' в их последнем индексе для обозначения конца. Кроме того, если вы не делаете это только для тренировки своих навыков Java, все это излишне сложно. Вы можете просто вызвать length() для своих строк, чтобы узнать их длину.   -  person OH GOD SPIDERS    schedule 22.06.2021
comment
Нет такой вещи, как \0 в java String (если вы явно не поместили \ 0 в строку, что совершенно верно)   -  person Gyro Gearless    schedule 22.06.2021


Ответы (4)


Длина составляет всего _ 1_. Проверка на \0 терминатора - это C-ism. Java не завершает строки NUL.

person Community    schedule 22.06.2021

Как указано в , это ТАК,

Строки в Java НЕ имеют терминатора NULL, как в C, поэтому вам нужно использовать метод length (), чтобы узнать, какова длина строки.

Поэтому вы можете изменить условие на

while (i < text.length())

(Если ваша цель действительно состоит в том, чтобы получить длину строки, ваша функция является избыточной, поскольку она уже встроена)

person Markus    schedule 22.06.2021

В Java нет char c='\0' для проверки конца строки. Он действителен в C / C ++, но в Java нет нулевого символа для определения конца строки.
Мы можем использовать цикл forEach для подсчета количества символов (длины строки) следующее:

public class Main
{
    public static void main(String args[])
    {
        String text = "hello world";
        int i = 0;
        // Using For-Each loop
        for (char character : text.toCharArray()) // For each character of `text`
        {
            i++;
        }
        System.out.println(i);
    }
}

Чтобы напрямую проверить длину строки, мы используем функцию length() как stringName.length ().

person GURU Shreyansh    schedule 22.06.2021

Строки поддерживаются массивами. Они не заканчиваются каким-либо специальным символом. Поэтому, если вы не хотите использовать text.length(), вы можете сделать следующее:

String text = "hello world";
int len = text.toCharArray().length;
System.out.println(len);

Отпечатки

11

 
person WJS    schedule 22.06.2021