2013-04-13 5 views
0

H Я немного новичок в java, и я пытаюсь выяснить, как определить, соответствуют ли три символа друг другу. И если они делают равные друг другу, я хочу выяснить, что они равны. Как мне это сделать? У меня нет кода, который был бы полезен для этой проблемы.Как проверить, соответствуют ли три символа друг другу, и если они делают то, что они равны?

+0

Пожалуйста, добавьте несколько примеров ввода и результата. –

ответ

1
char c1 = 'a'; 
char c2 = 'b'; 
char c3 = 'c'; 

// are all 3 equal? 
if(c1 == c2 && c2 == c3) { 
    // print out what the char is 
    System.out.println("The characters all equal and is " + c1); 
} 
5

Это не интеллектуальное/динамическое решение, но работает:

char a = 'a'; 
char b = 'b'; 
char c = 'a'; 

if(a == c && b == c) { 
    System.out.println("All chars are same"); 
} else { 
    if(a == b) System.out.println("a equals b"); 
    if(a == c) System.out.println("a equals c"); 
    if(b == a) System.out.println("b equals a"); 
    if(b == c) System.out.println("b equals c"); 
    if(c == a) System.out.println("c equals a"); 
    if(c == b) System.out.println("c equals b"); 
} 

Выход:

а равен с
гр равен а

Динамический способ:

char[] chars = {'a', 'b', 'a'}; 

for (int i = 0; i < chars.length; i++) { 
    char char1 = chars[i]; 

    for (int i2 = 0; i2 < chars.length; i2++) { 
     char char2 = chars[i2]; 

     if (i != i2) { 
      if (char1 == char2) { 
       System.out.println(char1 + " equals " + char2); 
      } else { 
       System.out.println(char1 + " not equals " + char2); 
      } 
     } 
    } 
} 

Выход:

не равна б
а равен а
б не равняется
б не равняется
a равно
a не равно b

+0

Это также не решение проблемы сравнения CHARACTERS ... –

+0

Хорошо, что вам нужны персонажи. Я заменил все строки на символы и все методы .equals() на == – HUNeater

2

Вы тест равенство символов с помощью ==

char c1 = ... 
    char c2 = ... 
    if (c1 == c2) { 
     System.out.println("they are equal"); 
    } 

и вы можете расширить, что несколько тестов с использованием && и || операторов ("и" и "или")

if (c1 == c2 && c2 == c3) { 
     System.out.println("they are all equal"); 
    } 

Что касается «выяснения того, что они равны», то ... наиболее очевидной интерпретацией является то, что вы хотите распечатать значение символа

if (c1 == c2 && c2 == c3) { 
     System.out.println("All three characters are '" + c1 + "'"); 
     System.out.println("The Unicode codepoint is " + ((int) c1)); 
    } 

Последняя строка преобразует символ в целое число и печатает его (в десятичной форме). Вы можете сделать это, если персонаж, которого вы пытаетесь исследовать, не подлежит печати. Кроме того, есть случаи, когда два или несколько отдельных кодов Unicode неотличимы при отображении.

(Теперь, если вы спрашивали о 1 символьных строк ... ответ был бы совсем другим. Вы не должны сравнивать строки любого типа с помощью ==. Вы должны использовать String.equals ...)


1 - Фактически, codepoint - неправильный термин. A char обычно представляет код Unicode, но в некоторых случаях для кодового пункта требуется два значения char ... суррогатная пара. Существует более точный термин для того, что такое char, но он ускользает от меня в данный момент.

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