Я хочу создать программу, которая читает предложение на испанском языке и переводит его на английский (и наоборот), но я не знаю, как его выполнить ...
Я верю в то, что используя карту для этого случая serГ - в mГЎs lГіgico. cГіdigo вытекающий quedarГ - в:
Scanner teclado = new Scanner(System.in);
Map<String, String> diccionario = new HashMap<String, String>();
diccionario.put("yo", "me");
diccionario.put("tu", "you");
diccionario.put("el", "he");
diccionario.put("ella", "she");
// ...y cuantas palabras quieras
// Esto realiza la "inversión" del diccionario
Map<String, String> dictionary = new HashMap<>();
for (String key : diccionario.keySet()) {
dictionary.put(diccionario.get(key), key);
}
String frase = teclado.next().toLowerCase().trim();
teclado.close();
StringBuilder phrase = new StringBuilder();
// Separamos las palabras por espacio e iteramos sobre cada una de ellas
for (String palabra : frase.split(" ")) {
// buscamos en el mapa
// dependiendo del idioma, buscaríamos en diccionario o dictionary
String word = diccionario.get(palabra);
// Si no existe, dejamos en Español
if (word == null) {
word = palabra;
}
// "concatenamos"
if (phrase.length() != 0) {
phrase.append(" ");
}
phrase.append(word);
}
System.out.println(phrase.toString());
Оставаясь despuГ©s ingles[9] = "spanish";
System.out.println("Idioma para traducir Español o Inglés");
String idiomaa = teclado.next(); // idioma = inglés
String [] traductor;
String [] idioma;
if ("Español".equals(idiomaa)){
traductor = español; // tu array de esp
idioma = ingles;
}else {
traductor = ingles; // tu array de ing
idioma = español;
}
System.out.println("Introduce una palabra: ");
frase = teclado.next();
// frase = tu
for(int i = 0 ; i < idioma.length; i ++){
// i = 0 ---> yo
// i = 1 ---> tu
if(frase.equals(idioma[i])){ // encuentra el tu
System.out.println("Traducido: " + traductor[i]); // Accedes a la posición
break;
}
}
AquГ - что мы идем, делать просто, когда он найдет слово на языке, которое они напишут, мы оказываемся ее вовлеченной posiciГіn в ту, которая мы и соглашаемся в нее posiciГіn другого array.
, Если ты хочешь перевести ФРАЗЫ, тебя должно делать это guiГЎndote из-за места , aquГ - уже у тебя есть идея, как начинаться для слов.
Не контекст, в котором ты хочешь использовать это, если это упражнение, чтобы учиться переворачивать данные и сравнивать их, или чтобы действительно переводчик делать. Ты должен думать, что одной traducciГіn буквальный не преуспели в ней mayorГ - в случаев. Глагол "play" в inglГ©s, смоги быть использованным, чтобы играть или чтобы касаться инструмента например, где в muchГ-simos случаи - mГЎs вещь контекста, что traducciГіn буквальный. Тогда это - что-то mГЎs комплекс, что это. Равного способа, я помещаю пример того, что ты просишь. В моем случае я использовал двухмерный array симулируя возможную таблицу базы данных, где я представил себе то, что каждая линия - слово и каждая колонна (каждый array) одна traducciГіn различного языка.
public void traducir(){
ArrayList<ArrayList<String>> idiomas = new ArrayList<>();
idiomas.add(new ArrayList<>());
idiomas.add(new ArrayList<>());
idiomas.get(0).add("yo");
idiomas.get(0).add("tu");
idiomas.get(0).add("el");
idiomas.get(0).add("juegas");
idiomas.get(1).add("I");
idiomas.get(1).add("you");
idiomas.get(1).add("he");
idiomas.get(1).add("play");
String fraseEnEsp = "tu juegas";
String[] palabaras = fraseEnEsp.split(" ");
StringBuilder frase = new StringBuilder();
for(String palabra : palabaras){
int indiceDePalabra = idiomas.get(0).lastIndexOf(palabra);
String palabraEnIngles = idiomas.get(1).get(indiceDePalabra);
frase.append(palabraEnIngles + " ");
}
System.out.println( frase);
}