Помещать число цепи символов java

Я пробую делать программу, которая распределяла бы в каждую букву азбуки число, совсем коррелятивно, а именно a=1, b=2, c=3... всегда в строчных буквах и без нее ñ. Для abcd вывода было бы 10, или для adef вывод 16. Код, который у меня есть:

import java.util.Scanner;

public class palabras {
public static void main(String args[]) {
    Scanner teclado = new Scanner(System.in);

    System.out.println("Escriba una cadena.");
    String x = teclado.nextLine();
    int s = x.length();
    int f = 0;
    char t;
    for (int i = 1; i < s; i++) {
        t = x.charAt(i);
        for (char a = 'a'; a <= t; a++) {

        }
        f = f+i;

    }
    System.out.println(f);

  }
} 

Что то, что у меня есть плохо, является for, который, если я помещаю af, выходит у меня 3, когда меня были бы должны вытекать 7.

0
задан 24.01.2017, 11:14
0 ответов

Ты можешь помогать себя кода ASCII:

    int suma = 0;
    String cadena = "abcd";
    for (int i=0; i<cadena.length(); i++){
      if ((int)cadena.charAt(i) != 164){
        suma += (int) cadena.charAt(i) - 96;
      }
    }
    System.out.println(suma);

Переместив один char в int, Java превращает в Ваш код Американский стандартный код обмена информацией. 164 это символ ñ Чтобы подтверждать, что он только помещает символ a в z ты мог бы менять линию проверки ñ из-за:

if ((int)cadena.charAt(i) >= 97 && (int)cadena.charAt(i) <= 122)

Здесь я оставляю тебе таблицу Американский стандартный код обмена информацией

2
ответ дан 03.12.2019, 17:31