2015-04-29 4 views
1

Я пытаюсь проверить, существует ли char [i]. Например:Как проверить, существует ли позиция в массиве

char[] c = {'h', 'e', 'l', 'l', 'o'}; 

Позиция 0 - 4 существует, но следующие результаты с ошибкой:

System.out.println(c[5]); 

По существу, как можно возвращать логическое значение, которое верно, если с [я] существует и ложь если не?

+0

Вы спрашиваете в контексте конкретного языка программирования? –

+4

Пожалуйста, сначала проверьте 'c.length'. –

ответ

4

Попробуйте

int i = 5; 
boolean exists = c.length >= i - 1; 

Из-за char не может содержать значение null, нет несуществующего характера между ними.

0

В настоящее время я нахожусь на мобильном телефоне, поэтому я не размещаю никакого кода, но у вас может быть метод, с помощью которого вы передаете массив и индекс, который использует предложение try-catch, чтобы возвращать логическое значение, исходя из того, исключение выбрано или нет.

+0

Да, посещение death-star 2.0? Теперь работать с ошибками строгания? Damit восстает! следите за своими шагами, если вы идете по своим войскам во время публикации SO. ; D –

+1

@PeterRader Черт, дети, продолжают ломать разрушители моей планеты. Невозможно найти достойное страхование где угодно. –

1
boolean fun(char[] c, int i){ 
If(i < c.length) 
return true; 
else 
return false;} 
0

Вы можете бросить ArrayIndexOutOfBoundsException поймать c[i] существует или нет. Надеюсь, вы также можете обратиться к этому website.

+0

Ловля исключений - не лучший способ сделать что-то, когда вы можете просто проверить 'c.length' и сравнить его с' i'. – Docteur

0

Вы можете сделать что-то вроде этого

public boolean isElementExist(Object[] arr, int index){ 
     if(index < 0) 
      return false; 
     return arr.length - index > 0 
} 
0
char[] c = {'h','e','l','l','o'}; 
    int input = Integer.parseInt(JOptionPane.showInputDialog(null,"Please enter an index you want to display")); 
    int i = c.length-1; 

    if(input > i){ 

     System.out.print("The index: "+input+" does not exist\n there are only "+ i+" in the array \n");  
    } 
    else System.out.print("The char at index "+input+" is: "+c[input]+"\n");   
} 

Try this out.

+0

Предполагая, что i равно 3, на основе вышеприведенного примера 'c.length()' is '4', а' i [3] 'is' l' - ascii-code '108', поэтому вы сравниваете' 108 == 4' ! Шутки в сторону? –

+0

'108' выглядит не как« правильный трек ». Можете ли вы ответить на свой ответ? –