Tengo esta condicion:
if(Character.isLetter(com[0]) && com [0] != '*' ){
System.out.println("Valid");
}
Lo que quiero que suceda es comparar este literal '*' con com [0] dinámicamente sin declarar el interior de com como cero.
Ejemplo de entrada cuando escribo este g * g todavía se muestra válido, el único momento en que dejará de ser válido será cuando escriba * gg. Me gustaría mostrar lo inválido sin importar dónde coloque el * char, no solo el primer índice.
Estoy creando un programa para verificar si una variable es válida o no válida, por lo que no se permiten caracteres especiales excepto este _ (debajo de la puntuación)
Aquí está el código completo:
public class identifier {
public static void main (String args[]){
char[] com = new char[26];
int flag = 0, i = 0;
System.out.println("Enter an identifier");
Scanner sc = new Scanner(System.in);
com = sc.next().toCharArray();
if(com[i] != 0 && Character.isLetter(com[i]) && com[i] != '*') {
System.out.println("Valid");
}
else {
System.out.println("Invalid");
}
while((int)com[i]==0)
{
if(!Character.isLetter(com.toString().charAt(i))&& !Character.isDigit(com.toString().charAt(i)) ){
flag=0;
break;
}
i++;
}
if(flag==1){
System.out.println("Valid");
}
}
}
3 respuestas
Lo que estás buscando es (supongo):
String comm = new String(com);
if (!comm.isEmpty() && Character.isLetter(comm.charAt(0)) && !comm.contains("*")) {
Esto significa: si la cadena de com
comienza con una letra y no contiene '*' ...
int i = 0;
if(Character.isLetter(com[i]) && com [i] != '*' ){
System.out.println("Valid");
}
Simplemente declare cero dentro de una variable y vuelva a escribir com [0] como com [i]
Defina un int
con el índice que desee. Es mejor usar String
. De esta manera usarás tres métodos.
isEmpty()
: Devuelve verdadero si, y solo si, length () es 0.
charAt(int index)
: Devuelve el valor char en el índice especificado.
contains(CharSequence s)
: Devuelve verdadero si y solo si esta cadena contiene la secuencia especificada de valores de caracteres.
int i = 0;
if(!com.isEmpty() && Character.isLetter(com.charAt(i)) && !com.contains('*') ){
System.out.println("Valid");
}
else{
System.out.println("Invalid");
}
Para obtener más información sobre los métodos, consulte la documentación.
ACTUALIZACIÓN:
Como explicó que desea verificar que si *
estaba contenido en algún índice, entonces cambié mi solución para cumplir con sus requisitos.
Nuevas preguntas
java
Java es un lenguaje de programación de alto nivel. Utilice esta etiqueta cuando tenga problemas para usar o comprender el idioma en sí. Esta etiqueta rara vez se usa sola y se usa con mayor frecuencia junto con [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] y [maven].