Ciao a tutti!
qualcuno sa se esiste un qualche metodo per verificare se una stringa corrisponde a una delle parole chiave di Java?
Grazie![]()
Ciao a tutti!
qualcuno sa se esiste un qualche metodo per verificare se una stringa corrisponde a una delle parole chiave di Java?
Grazie![]()
No, ma è facilmente costruibile, essendo che le parole chiave sono un insieme finito.
codice:import java.util.*; public class TestKeyword { private static String[] keywords = { "assert", "abstract", "boolean", "break", "byte", "case", "catch", "char", "class","const", "continue", "default", "do", "double", "else", "extends", "final", "finally", "float", "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "package", "private", "protected", "public", "return", "short", "static", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while"}; public static void main(String[] args) { System.out.println("La parola " + ((Arrays.binarySearch(keywords, args[0]) >= 0) ? "è" : "non è") + " una keyword"); } }
Verifica se la parola passata come primo argomento è una keyword Java oppure no.
Resta da capire l'utilità di una cosa del genere, se non per scopi molto molto specialistici.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
No no infatti, mi chiedevo soltanto se esistesse un metodo diverso da questo
Grazie mille!!!
A partire da Java 6 esiste nel framework standard la enum javax.lang.model.SourceVersion che ha il metodo statico isKeyword.
codice:boolean parolaChiave = SourceVersion.isKeyword("extends");
Il vantaggio di questo metodo è che, essendo nel framework, è sicuramente tenuto aggiornato se in futuro dovessero aggiungere nuove keyword.
Nota: questo isKeyword indica come parole chiave anche i valori letterali false, true e null che effettivamente sono comunque "riservati" (non possono essere usati come identificatori).
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Grazie![]()