2015-02-27 7 views
1

У меня есть массив строк, который выглядит как:Получить символ из нескольких массива строк

String[] rows = {"AAA","BBB","CCC"}; 

Как я могу получить конкретный индекс определенной строки? Если я делаю rows[6], я получаю выход за пределы ex. Однако, когда я делаю rows[2], я получаю целую строку CCC.

Должен ли я сначала получить строку, а затем получить конкретный символ? Или я могу не просто захватить его из массива?

+0

Что вы ожидали 'rows [6]', чтобы вернуться? У вас есть массив строк - поэтому, когда вы обращаетесь к этому массиву по индексу, вы действительно получаете целую строку, а затем вы можете получить символ внутри этой строки, используя 'charAt'. –

+0

Я ожидал, что он вернет 'B'. Но, видя в качестве своего массива, было глупо думать, что он вернет одну букву ... – ThatGuy343

+0

@ ThatGuy343 Java имеет 0-индексированные массивы, как и большинство языков программирования. Даже если массив работал так, как вы ожидали, он вернул бы «C». – Shashank

ответ

4

Используйте String#charAt(int index), чтобы получить символ в желаемом индексе после извлечения строки элемента, например:

String[] rows = {"AAA","BBB","CCC"}; 
System.out.println(rows[2].charAt(2)); // C 

Если вы хотите (и если вы действительно должны), вы можете объединить все элементы, используя StringBuilder так что результат AAABBBCCC, и использовать StringBuilder#charAt(int index):

String[] rows = {"AAA","BBB","CCC"}; 
StringBuilder sb = new StringBuilder(); 
for(String row : rows) { 
    sb.append(row); 
} 
System.out.println(sb.charAt(6)); // C 
1
String[] rows = {"AAA","BBB","CCC"}; 

- это способ инициализации массива тремя элементами с индексом 0,1 и 2 (длина 3). Поэтому сначала вы должны получить свою строку, и вы можете использовать chatAt (position).

Смежные вопросы