ул.длина; (против) str.length()

У меня была ошибка "не удается найти символ", когда я использовал length() для строки внутри функции, и я избавился от нее, когда использовал length. Мне нужно знать, в чем причина этого?

код:

//this got cannot find symbol error
static int[] matchingStrings(String[] strings, String[] queries) {
        int n=queries.length();
        int ns=strings.length();
        int res[]=new int[n];
//this ran 
static int[] matchingStrings(String[] strings, String[] queries) {
        int n=queries.length;
        int ns=strings.length;
        int res[]=new int[n];

person vishal N    schedule 18.08.2020    source источник
comment
Для массива нет метода length() (поэтому этот символ не найден), но есть свойство length (следовательно, оно работает).   -  person CherryDT    schedule 18.08.2020
comment
geeksforgeeks.org/length-vs-length-java   -  person CherryDT    schedule 18.08.2020
comment
разве str.length() не является методом для строк?   -  person vishal N    schedule 18.08.2020
comment
Да, но у вас здесь массив, а не строка.   -  person CherryDT    schedule 18.08.2020
comment
Получить длину массива запросов: queries.length - Получить длину первой строки внутри массива запросов: queries[0].length()   -  person CherryDT    schedule 18.08.2020
comment
Обратите внимание, что length является атрибутом для String[] (и массивов в целом), а метод length() для String, потому что в противном случае это не будет достаточно запутанным.   -  person tobias_k    schedule 18.08.2020
comment
понял @CherryDT Спасибо.   -  person vishal N    schedule 18.08.2020


Ответы (1)


Ты смущен:

Для массива: array.length; Для строк: string.length();

Для массивов длина не считается методом, это константа (атрибут) (поэтому и нет ()).

person Ralph Aouad    schedule 18.08.2020