2014-10-19 3 views
-3
String myName[] = {"Mouse","Laptop","Facebook","Logitech"}; 

    // print the first character 
    System.out.println(myName.charAt(0)); 

    // print the second character 
    System.out.println(myName.charAt(1)); 

    // print the last character 
    int lastPos = myName.length() - 1; 
    System.out.println(myName.charAt(lastPos)); 

/* любой может объяснить это noob? Это говорит мне, чтобы я изменился до конца, но это не то, что я хочу. В основном, я хочу, чтобы пройти через каждый символ строки. */Java: Почему это невозможно?

+3

Типы массивов dont 'имеют 'charAt (int)' и 'length()' методы. –

+0

myName - это массив строк, чтобы сделать его одной строкой, вам нужно сначала выбрать строку. т.е. 'myName [0] .charAt (0)' Это первая буква первого слова. –

+0

Вам нужна какая-то форма цикла, чтобы пройти через все элементы массива. –

ответ

2

Вы используете методы String на массиве. Чтобы получить доступ к символам в строках, вам нужно сначала получить один из объектов String, сидящих в этом массиве. Например, если myName[0].charAt(0) даст вам первый символ первого String в массиве. Если ваше намерение сделать что-то с каждым символом в каждой строке в массиве, вы должны использовать цикл следующим образом:

for (int i=0; i<myName.length; i++){ 
    for (int j=0; j< myName[i].length(); j++){ 
     myName[i].charAt(j); // Do something with ths value, I am just getting it here. 
    } 
} 
0

Вы инициализируетесь массивом string.Later если и хотят получить доступ к ним вы не можете напрямую используйте myName просто. Потому что это контейнер, который имеет много мест памяти, в которых хранятся данные. Таким образом, просто используя myName не представляется возможным, вместо этого следует его индекс (т. Е. MyName [i] передает 0,1,2 .. вместо i). См. Модификацию программы ur ниже. Может быть, вы можете это понять.

public class ArrayDemo { 

public static void main(String[] args) { 
    String myName[] = {"Mouse","Laptop","Facebook","Logitech"}; 

     for(int i=0;i<=myName.length()-1;i++){ 
       // print the first character 
     System.out.println(myName[i].charAt(0)); 


     // print the second character 
     System.out.println(myName[i].charAt(1)); 

     // print the last character 
     int lastPos = myName[0].length() - 1; 
     System.out.println(myName[i].charAt(lastPos)); 
     } 
} 

} 
+1

мы не говорим «мой дорогой друг» тому, с кем мы даже не общались раньше. Эта «эффузивная вежливость» вышла из моды 50 лет назад. В эти дни это просто звучит смешно. (А также быть буквально ложным.) –

+2

Это распространенная ошибка, допущенная не-носителями английского языка. Возможно, это потому, что это считается вежливым на родном языке человека или просто так, как их преподавали на английском, но это разговор для [SE English] (http://english.stackexchange.com/). – dramzy

0

Вы создали массив строк где каждый элемент в этом массиве является «String». Таким образом, вы не можете использовать charAt для массива.

charAt (указатель) по имени - вы можете подумать (указать мне персонаж в указателе положения).

Итак, сначала вам нужно перейти к конкретной «Строке», а затем сказать «дайте мне персонаж в положении« x ».

Итак, если вы хотите пойти в «Facebook», то поздороваться «дайте мне элемент массива в положении 3, который является индексом 2» с помощью:

myName[2]; 

магазин это, скажем, переменная ул, которая должна быть "String":

String str = myName[2]; 

Затем вы можете использоватьШара (х) на ул с помощью:

for(int i =0 ; i<str.length() ; i++){ 
System.out.println(str.charAt(i)); 
} 
Смежные вопросы