Snakethesniper
Sto facendo un programma in cui devo prendere un carattere e un valore intero e poi sommarli.
Per esempio se prendo 'a' e poi 1 devo poter fare 'a' + 1 = 'b'.
Ora, ho scritto : char d = c + num;
c è il carattere preso da tastiera e num l'intero (sempre preso da tastiera).
Nel momento in cui compilo mi da errore sul "+" dicendo che è intero e ci si aspetta un char. Ora come risolvo? Ho provato a forzare anche il num in char ma l'errore me lo da sempre sul +. Grazie
Questo perché non sei in C e non si può sommare due char... la soluzione è semplice comunque. Basta castare il char a int, sommare e castare il risultato a char
Codice:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Prova {
public static void main(String[] args) throws Exception {
// Oggetto per leggere da console
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
while(true) {
// Prende una stringa, se viene immesso "quit" esce dal ciclo
System.out.print("Give me a string (\"quit\" to exit): ");
String str = cin.readLine();
if (str.equals("quit"))
break;
// Costruisce una nuova stringa a partire dalla precedente
//
String newStr = "";
for (int i = 0; i < str.length(); i++)
newStr += (char)((int)str.charAt(i) + 1);
System.out.println("Output string is: " + strBuilder.toString() + "\n##########################\n");
}
System.out.println("BYE!");
}
}
L'esempio è esageratamente complicato perché ho il brutto vizio di farmi prendere la mano, l'unica cosa che mi sono evitato è il trattamento delle eccezioni e l'utilizzo dello stringbuilder al posto della concatenazione di stringhe... cmq il succo è la riga in grassetto e sottolineata