Qual è il modo migliore e/o più semplice per riconoscere se un string.charAt (indice) è una lettera A-z o un numero in Java senza utilizzare le espressioni regolari? Grazie.Qual è il modo migliore per dire se un personaggio è una lettera o un numero in Java senza usare espressioni regolari?
risposta
Confrontare il suo valore. Dovrebbe essere compreso tra il valore di 'a' e 'z', 'A' e 'Z', '0' e '9'
Questo approccio manuale è migliore rispetto al metodo incorporato 'Character.isLetter()' ? –
@IgorGanapolsky - Dipende esattamente da cosa stai cercando di fare. Suggerimento: fanno cose diverse! –
@StephenC Ho pensato che 'Character.isLetter()' è rudimentale. A meno che non stiamo parlando di internazionalizzazione? –
io non conoscono meglio, ma questo sembra abbastanza semplice per me:!
Character.isDigit(str.charAt(index))
Character.isLetter(str.charAt(index))
Poiché le risposte indicano (se si esamina con attenzione), la tua domanda è ambiguo. Cosa intendi con "una lettera A-z" o una cifra?
Se vuoi sapere se un personaggio è un lettera Unicode o cifre, quindi utilizzare il
Character.isLetter
eCharacter.isDigit
metodi.Se vuoi sapere se un personaggio è un lettera ASCII o cifre, allora la cosa migliore da fare è quello di testare confrontando con il carattere gamme 'a' a 'z', 'A' a ' Z 'e' 0 'a' 9 '.
Si noti che tutte le lettere ASCII/cifre sono lettere Unicode/cifre ... ma ci sono molte lettere Unicode/caratteri cifre che non sono ASCII. Ad esempio, le lettere accentate, cirillico, il sanscrito, ...
Quindi, come determinare se un personaggio è una lettera cirillica? –
Per prima cosa, si fa una nuova domanda –
Java classe personaggio ha un metodo di isLetterOrDigit partire dalla versione 1.0.2
Questa è la risposta giusta. –
Sto cercando una funzione che controlla solo se si tratta di una delle lettere latine o un numero decimale. Dal char c = 255
, che nella versione stampabile è ├ e considerato come una lettera da Character.isLetter(c)
. Questa funzione Penso che è quello che la maggior parte degli sviluppatori sono alla ricerca di:
private static boolean isLetterOrDigit(char c) {
return (c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') ||
(c >= '0' && c <= '9');
}
// check if ch is a letter
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
// ...
// check if ch is a digit
if (ch >= '0' && ch <= '9')
// ...
// check if ch is a whitespace
if ((ch == ' ') || (ch =='\n') || (ch == '\t'))
// ...
Fonte: https://docs.oracle.com/javase/tutorial/i18n/text/charintro.html
Il codice precedente è errato perché funziona solo con l'inglese e poche altre lingue. Per internazionalizzare l'esempio precedente, sostituirlo con le seguenti dichiarazioni: char ch; // ... // Questo codice è OK! se (Character.isLetter (ch)) // ... se (Character.isDigit (ch)) // ... se (Character.isSpaceChar (ch)) // .. –
OP chiesto chiaramente 'se un string.charAt (indice) è una lettera di Az'. Quindi non stiamo parlando di altre lingue, vero? – retrazil
import java.util.Scanner;
public class v{
public static void main(String args[]){
Scanner in=new Scanner(System.in);
String str;
int l;
int flag=0;
System.out.println("Enter the String:");
str=in.nextLine();
str=str.toLowerCase();
str=str.replaceAll("\\s","");
char[] ch=str.toCharArray();
l=str.length();
for(int i=0;i<l;i++){
if ((ch[i] >= 'a' && ch[i]<= 'z') || (ch[i] >= 'A' && ch[i] <= 'Z')){
flag=0;
}
else
flag++;
break;
}
if(flag==0)
System.out.println("Onlt char");
}
}
Questa non è una risposta di espressione regolare – user7294900
- 1. Determinare se char è un numero o una lettera
- 2. Qual è il modo migliore per evitare l'input dell'utente per le espressioni regolari in MySQL?
- 3. Qual è un modo migliore per verificare se una stringa è un numero intero su iPhone?
- 4. Qual è il modo migliore per verificare se una stringa contiene un URL in Java/Android?
- 5. Qual è il modo migliore per usare il codice Python da Scala (o Java)?
- 6. Come determinare se una chiave è una lettera o un numero?
- 7. Qual è il modo più semplice per dire se una grammatica BNF è ambigua o no?
- 8. Qual è il modo migliore per verificare se un oggetto è un array o non in Javascript?
- 9. Qual è il significato di [^] in espressioni regolari di Javascript?
- 10. Qual è l'effetto di "*" nelle espressioni regolari?
- 11. C'è un modo per dire se un font supporta un determinato personaggio in Imagick?
- 12. Qual è il modo migliore per scrivere espressioni booleane in Java
- 13. Qual è il modo migliore per ridimensionare un oggetto BitmapData?
- 14. Posso determinare se un KeyEventArg è una lettera o un numero?
- 15. Regex: Aggiungi spazio se la lettera è adiacente al numero
- 16. Qual è il modo migliore per reimparare una lingua?
- 17. Il modo migliore per dire a swaggerui dove l'host è
- 18. Qual è il modo migliore per autorizzare una chiavetta USB
- 19. In JavaScript/jQuery qual è il modo migliore per convertire un numero con una virgola in un numero intero?
- 20. Come posso verificare se un carattere è una lettera o un numero?
- 21. REGEX, il modo migliore per imparare è
- 22. Qual è il modo corretto per verificare se un percorso è un percorso UNC o un percorso locale?
- 23. qual è il modo migliore per verificare se una stringa esiste in un altro?
- 24. Qual è il modo migliore per rilevare se è disponibile un server proxy?
- 25. Qual è il modo migliore per chiudere un ramo Mercurial?
- 26. fare un avviso sul keyup solo se la chiave è una lettera o un numero
- 27. C'è un modo per dire se un'operazione OpenGL è finita?
- 28. Ore/minuti/secondi corrispondenti nelle espressioni regolari - un modo migliore?
- 29. Qual è il modo migliore per svuotare un vettore o una matrice in AS3?
- 30. Come posso dire che un file è SVG senza usare un numero magico?
Nota: questi dati indicano se il carattere è una lettera/cifra Unicode. L'OP ha chiesto "una lettera A-z" ... qualunque cosa significhi. –
Perché ASCII ├ (255) passa nel mio caso? Pensavo che fosse solo per a-z, A-Z e 0-9? – mr5
Collegamenti non validi per i javadoc. –