Discussione:
tripla virgoletta
(troppo vecchio per rispondere)
vissano
2014-07-25 18:21:16 UTC
Permalink
Il codice sottoriportato usa la tripla virgoletta,a cosa serve?(credevo
fosse un modo per stampare una virgoletta singola,ma poi nella stampa non
compare 'a' ma bensì solo a ):



public class Maiuscolo {
public static void main(String[] args) {
int minuscolo = args[0].charAt(0);
int maiuscolo = minuscolo & 223;
System.out.println("Prima della conversione il carattere e':
'"+(char)minuscolo+"' ed il suo
codice UNICODE e': "+minuscolo);
System.out.println("Dopo la conversione il il carattere e':
'"+(char)maiuscolo+"' ed il suo codice
UNICODE e':"+maiuscolo);
}
}

visualizza :

Prima della conversione il carattere e': a ed il suo codice UNICODE e': 97
Dopo la conversione il il carattere e': A ed il suo codice UNICODE e': 65
Andrea D'Amore
2014-07-25 21:07:52 UTC
Permalink
Post by vissano
Il codice sottoriportato usa la tripla virgoletta,a cosa serve?(credevo
fosse un modo per stampare una virgoletta singola,ma poi nella stampa
Incolla un esempio completo che riproduca il problema.
Usare l'apostrofo al posto dell'accento in un programma che parla di
Unicode è molto ironico.
--
Andrea
vissano
2014-07-25 23:44:18 UTC
Permalink
Post by Andrea D'Amore
Incolla un esempio completo che riproduca il problema.
public class Maiuscolo {
public static void main(String[] args) {
int minuscolo = args[0].charAt(0);
int maiuscolo = minuscolo & 223;
System.out.println("Prima della conversione il carattere e':
'"+(char)minuscolo+"' ed il suo
codice UNICODE e': "+minuscolo);
System.out.println("Dopo la conversione il il carattere e':
'"+(char)maiuscolo+"' ed il suo codice
UNICODE e':"+maiuscolo);
}
}
Dr.Ugo Gagliardelli
2014-07-28 08:42:43 UTC
Permalink
Post by vissano
Il codice sottoriportato usa la tripla virgoletta,a cosa serve?(credevo
fosse un modo per stampare una virgoletta singola,ma poi nella stampa non
public class Maiuscolo {
public static void main(String[] args) {
int minuscolo = args[0].charAt(0);
int maiuscolo = minuscolo & 223;
'"+(char)minuscolo+"' ed il suo
codice UNICODE e': "+minuscolo);
'"+(char)maiuscolo+"' ed il suo codice
UNICODE e':"+maiuscolo);
}
}
Prima della conversione il carattere e': a ed il suo codice UNICODE e': 97
Dopo la conversione il il carattere e': A ed il suo codice UNICODE e': 65
Immagino che il metodo println interpreti gli apici singoli come se
fosse un literal di un char, quindi stampa il carattere. Come se fosse
'a', probabilmente si comporterebbe similarmente valutando
l'espressione: "'"+'a'+"'".
Andrea D'Amore
2014-07-28 12:23:58 UTC
Permalink
Post by Dr.Ugo Gagliardelli
Immagino che il metodo println interpreti gli apici singoli come se
fosse un literal di un char, quindi stampa il carattere.
Ma non all'interno di una stringa.
Il problema vero è che l'OP non ha scritto cosa sta facendo
effettivamente, ha solo incollato il codice di una classe.

Questo è quello che mi aspettavo invece:

/t/u > cat Maiuscolo.java
public class Maiuscolo {
public static void main(String[] args) {
int minuscolo = args[0].charAt(0);
int maiuscolo = minuscolo & 223;
System.out.println("Prima della conversione il carattere è: '"
+ (char)minuscolo + "' ed il suo codice Unicode è: " + minuscolo);
System.out.println("Dopo la conversione il il carattere è: '" +
(char)maiuscolo + "' ed il suo codice Unicode è: " + maiuscolo);
}
}
/t/u > javac Maiuscolo.java
/t/u > java Maiuscolo a_string
Prima della conversione il carattere è: 'a' ed il suo codice Unicode è: 97
Dopo la conversione il il carattere è: 'A' ed il suo codice Unicode è: 65
/t/u >
--
Andrea
Rossano Basile
2014-07-28 16:12:56 UTC
Permalink
Post by vissano
Il codice sottoriportato usa la tripla virgoletta,a cosa serve?(credevo
fosse un modo per stampare una virgoletta singola,ma poi nella stampa non
public class Maiuscolo {
public static void main(String[] args) {
int minuscolo = args[0].charAt(0);
int maiuscolo = minuscolo & 223;
'"+(char)minuscolo+"' ed il suo
codice UNICODE e': "+minuscolo);
'"+(char)maiuscolo+"' ed il suo codice
UNICODE e':"+maiuscolo);
}
}
Prima della conversione il carattere e': a ed il suo codice UNICODE e': 97
Dopo la conversione il il carattere e': A ed il suo codice UNICODE e': 65
Ho copia-incollato la classe in Eclipse, riformattata con cmd-F (così
com'era c'erano degli a capo che incasinavano le stringhe).

class Maiuscolo {
public static void main(String[] args) {
int minuscolo = args[0].charAt(0);
int maiuscolo = minuscolo & 223;
System.out.println("Prima della conversione il carattere e': '"
+ (char) minuscolo + "' ed il suo codice UNICODE e': "
+ minuscolo);
System.out.println("Dopo la conversione il il carattere e': '"
+ (char) maiuscolo + "' ed il suo codice UNICODE e' :"
+ maiuscolo);
}
}

L'ho provata (Java 1.6 su OSX 10.6.8) e la stampa che ottengo è
esattamente quella attesa:

Prima della conversione il carattere e': 'a' ed il suo codice UNICODE
e': 97
Dopo la conversione il il carattere e': 'A' ed il suo codice UNICODE e'
:65
--
Questa firma è stata lasciata intenzionalmente vuota.
Loading...