Объясняя некоторые детали о String - PullRequest
0 голосов
/ 21 февраля 2012

Привет, у меня очень простой вопрос.Я изучаю различные веб-сайты, которые говорят о массивах, и вижу эту часть, которую я не очень хорошо понимаю.

В (1) Почему 'myString.length()' имеет '()', почему не просто myString.length, как в примере (2) ??

В(1) Почему «System.out.println(myString.substring(i,i+1))» имеет «myString.substring(i,i+1)», а не просто «myString(i,i+1)» ??

В (1) Почему «System.out.println(myString.substring(i,i+1))» имеет два значения »(i,i+1) 'почему не просто' System.out.println(myString.substring(i)) 'как в примере (2) ??

1. String myString="abcedaslkhldfag";
for(int i=0; i<myString.length(); i++)
System.out.println(myString.substring(i,i+1));  


2. for(int i=0; i<anArrayOfints.length; i++){
System.out.println(anArrayOfints[i]);
}

Спасибо, я нашел его на этом сайте http://www.javaclass.info/classes/java-array/array-examples-demonstration-and-code-snippets.php

Ответы [ 5 ]

0 голосов
/ 21 февраля 2012

Первый , о массивах и строках.

Вы сравниваете совершенно разные классы.

Типы массивов - это специальные объекты, которые создаются динамически. Даже массив примитивов является объектами (в отличие от C), поэтому он может иметь определенные переменные / методы-члены. Посмотрите здесь: Массив членов

String - это класс, который инкапсулирует поведение, подходящее для строк, таких как подстрока, усечение и т. Д. Фактические данные хранятся внутри как символьный массив, поэтому между ними существует тесная связь, но сам класс представляет больше, чем просто символы.

Во-вторых , о методе subString.

Методы, вызываемые для строкового объекта, следуют синтаксису, указанному в API.

public String substring(int beginIndex)
public String substring(int beginIndex,int endIndex)

Взгляните на String API здесь . Там вы найдете метод length (), который возвращает длину строки.

Записка о классе "Массивы".

Существует класс под названием "Массивы", который стал доступен как часть структуры коллекций. Цель этого класса состояла в том, чтобы включить поведения, которые обычно используются во всех типах массивов (таких как сортировка и поиск).

0 голосов
/ 21 февраля 2012

1, myString имеет метод с именем length. Когда вы используете метод, вы должны указать аргументы, которые должны быть включены в "()". В (2) длина означает атрибут. Просто используйте его как переменную.

2, подстрока является методом. При использовании метода какого-либо объекта вы можете представить, что отправляете команду этому объекту. myString не может понять "myString (i, i + 1)". Вы должны указать метод или команду "subString"

3, anArrayOfints является объектом массива. Так же, как список чего-то. Вы должны указать номер, чтобы подобрать элемент.

0 голосов
/ 21 февраля 2012

Это потому, что length() является методом класса String, а length является переменной экземпляра класса Array.

Что касается myString.substring(i, i + 1), то это метод, вызываемый для экземпляра класса String, который будет возвращать новый экземпляр String, содержащий подстроку. Фактически, myString.substring(i) существует в API и возвращает подстроку, которая начинается с i и заканчивается последним символом в myString.

Обратите внимание, что anArrayOfints[i] возвращает int, хранящийся в элементе i в массиве.

0 голосов
/ 21 февраля 2012

Первый, myString - это строка, которая является объектом.Вы вызываете метод с именем length() типа String, чтобы узнать длину строки.Этот метод вычисляет количество символов в строке и возвращает это число.И subString() также является методом, который принимает два параметра, начало и конец индекса.Это просто стандарт, который создается Java.Чтобы узнать больше о строковых методах, здесь .

Второй - непрерывная память данных, массив.Длина массива также сохраняется в массиве и доступна с помощью '.length'

0 голосов
/ 21 февраля 2012

Класс Array расширяет java.lang.Object. Следовательно, массив является экземпляром объекта. Массивы имеют одну переменную экземпляра, называемую длиной. Это переменная, поэтому вам не нужно (). А в строковом классе есть функция-член length, поэтому вам нужна функция ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...