¿Cuál es la mejor y más fácil forma de reconocer si un string.charAt (índice) es una letra A-z o un número en Java sin usar expresiones regulares? Gracias.¿Cuál es la mejor manera de saber si un personaje es una letra o número en Java sin usar expresiones regulares?
Respuesta
Compare su valor. Debe estar entre el valor de 'a' y 'z', 'A' y 'Z', '0' y '9'
Este enfoque manual es mejor que el Character.isLetter 'método integrado'() ? –
@IgorGanapolsky - Depende exactamente de lo que trates de hacer. Sugerencia: ¡hacen cosas diferentes! –
@StephenC Pensé que 'Character.isLetter()' es rudimentario. ¿A menos que hablemos de internacionalización? –
que no saben de lo mejor, pero esto parece bastante simple para mí:
Character.isDigit(str.charAt(index))
Character.isLetter(str.charAt(index))
Como las respuestas indican (si se examina con cuidado), su pregunta es ambiguo. ¿Qué quiere decir con "una letra A-z" o un dígito?
Si desea saber si un carácter es una letra o dígitoUnicode, a continuación, utilizar los métodos y
Character.isLetter
Character.isDigit
.Si desea saber si un personaje es un carta ASCII o dígitos, entonces la mejor cosa que hacer es poner a prueba comparando con el carácter rangos 'a' a la 'z', 'A' a ' Z 'y' 0 'a' 9 '.
Tenga en cuenta que todas las letras ASCII/Unicode dígitos son letras/cifras ... pero hay muchas cartas Unicode caracteres y/o dígitos que no son ASCII. Por ejemplo, las letras acentuadas, cirílico, sánscrito, ...
Entonces, ¿cómo determinar si un personaje es una letra cirílica? –
Primero, haga una nueva pregunta –
Java clase de personaje tiene un método isLetterOrDigit desde la versión 1.0.2
Esta es la respuesta correcta. –
Busco una función que verifica sólo si es una de las letras del alfabeto latino o un número decimal Desde char c = 255
, que en la versión imprimible es ├ y se considera como una letra por Character.isLetter(c)
. Esta función Creo que es lo que la mayoría de los desarrolladores están buscando:
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'))
// ...
Fuente: https://docs.oracle.com/javase/tutorial/i18n/text/charintro.html
El código anterior es incorrecto porque funciona solo en inglés y en algunos otros idiomas. Para internacionalizar el ejemplo anterior, reemplácelo con las siguientes afirmaciones: char ch; // ... // ¡Este código está bien! si (Character.isLetter (CH)) // ... si (Character.isDigit (CH)) // ... si (Character.isSpaceChar (CH)) // .. –
OP preguntó claramente 'si un string.charAt (índice) es una letra Az'. Entonces, no estamos hablando de otros idiomas, ¿verdad? – 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");
}
}
Esta no es una respuesta de expresión regular – user7294900
- 1. ¿Cómo determinar si un personaje es una letra en Java?
- 2. ¿Cómo determinar si una clave es una letra o número?
- 3. Determine si char es un número o una letra
- 4. ¿Cuál es una mejor manera de verificar si una cadena es un número entero en iPhone?
- 5. ¿En qué casos es mejor usar expresiones regulares?
- 6. ¿Puedo determinar si KeyEventArg es una letra o número?
- 7. ¿es posible usar expresiones regulares en C++?
- 8. HTML5: ¿qué es mejor, usar una entidad de personaje vs usar un personaje directamente?
- 9. ¿Cuál es la mejor manera de comenzar a usar Asterisk?
- 10. ¿Cuál es la mejor manera de usar SOAP con Ruby?
- 11. ¿Cuál es una buena manera de verificar si un doble es un número entero en C#?
- 12. ¿Cuál es la mejor manera de verificar si una cadena contiene una URL en Java/Android?
- 13. ¿Cuál es una manera eficiente de saber si un mapa de bits es completamente negro?
- 14. ¿Cuál es la mejor manera de saber si su perl se ejecuta en -e?
- 15. Para usar o no usar expresiones regulares?
- 16. ¿Cuál es la mejor forma de evitar la entrada del usuario para expresiones regulares en MySQL?
- 17. hacer una alerta en keyup sólo si la clave es una letra o número
- 18. ¿Cuál es la mejor manera de usar mongoDB con node.js?
- 19. Regex: agregue espacio si la letra es adyacente a un número
- 20. ¿Cuál es el efecto de "*" en expresiones regulares?
- 21. ¿Cuál es la mejor manera de almacenar una contraseña o clave privada en un host web?
- 22. ¿Cuál es la mejor manera de verificar si un objeto es una matriz o no en Javascript?
- 23. En SQL Server, ¿cuál es la mejor manera de determinar si una cadena dada es un XML válido o no?
- 24. cómo saber si una variable es una tupla, una cadena o un número entero?
- 25. Cuál es la mejor manera de determinar si una ventana es realmente visible en WPF
- 26. ¿Cuál es la mejor manera de barajar un NSMutableArray?
- 27. ¿Cuál es la mejor manera de determinar si una variable de sesión es nula o está vacía en C#?
- 28. ¿Cuál es la mejor manera de empezar a usar Mylyn?
- 29. ¿Cuál es la mejor manera de determinar si una fecha es hoy en JavaScript?
- 30. ¿Cuándo es mejor usar expresiones regulares sobre la división de cadenas básica/subcadena?
Nota: esto te dice si el personaje es una letra/dígito Unicode. El OP pidió "una carta A-z" ... lo que sea que eso signifique. –
¿Por qué el ASCII ├ (255) pasa en mi caso? Pensé que era para a-z, A-Z y 0-9 solamente? – mr5
Enlaces muertos para los javadocs. –