Почему сравнение символов с .Equals всегда возвращает false?
char letter = 'a';
Console.WriteLine(letter.Equals("a")); // false
В целом я пытаюсь написать переводчик с английского на азбуку Морзе. У меня возникла проблема со сравнением значений символов, показанных выше. Я начал с foreach, чтобы проанализировать все символы из входных данных ReadLine(), используя метод WriteLine(), все символы были транспонированы нормально, но при попытке сравнить их с помощью метода .Equals(), что бы я ни делал, он всегда выдает false при попытке сравнить символы.
Я успешно использовал метод .Equals() с другими строками, но, похоже, он не работает с моими символами.
using System;
public class MorseCode {
public static void Main (string[] args) {
Console.WriteLine ("Hello, write anything to convert it to morse code!");
var input = Console.ReadLine();
foreach (char letter in input) {
if(letter.Equals("a")) {
Console.WriteLine("Its A - live");
}
Console.WriteLine(letter);
}
var morseTranslation = "";
foreach (char letter in input) {
if(letter.Equals("a")) {
morseTranslation += ". _ - ";
}
if(letter.Equals("b")) {
morseTranslation += "_ . . . - ";
}
if(letter.Equals("c")) {
morseTranslation += "_ . _ . - ";
}
...
}
}
Console.WriteLine("In morse code, " + input + " is '"morseTranslation + "'");
}
}
В начале я написал foreach, чтобы проверить, распознал ли он и выполнил правильный вывод, но в конце, когда я написал «образец» в ReadLine(), он дал мне:
Hello, write anything to convert it to morse code!
sample
s
a
m
p
l
e