J'ai l'utilisateur entrer un seul caractère dans le programme et il est stocké sous forme de chaîne. Je voudrais savoir comment je pourrais vérifier si le caractère saisi est une lettre ou un chiffre. J'ai une déclaration if, donc si c'est une lettre, son empreinte est une lettre, et la même chose pour un chiffre. Le code que j'ai jusqu'à présent ne fonctionne pas, mais j'ai l'impression d'être proche. Toute aide que vous pouvez offrir est appréciée.
System.out.println("Please enter a single character: ");
String character = in.next();
System.out.println(character);
if (character.isLetter()){
System.out.println("The character entered is a letter.");
}
else (character.isDigit()){
Syste.out.println("The character entered is a digit.");
Vous pouvez utiliser:
if (Character.isLetter(character.charAt(0))){
....
Vous pouvez utiliser les méthodes existantes de la classe Character. Jetez un coup d'œil à la documentation:
http://download.Java.net/jdk7/archive/b123/docs/api/Java/lang/Character.html#isDigit(char)
Donc, vous pourriez faire quelque chose comme ça ...
String character = in.next();
char c = character.charAt(0);
...
if (Character.isDigit(c)) {
...
} else if (Character.isLetter(c)) {
...
}
...
Si vous souhaitez savoir exactement comment cela est implémenté, vous pouvez toujours consulter le code source Java.
Hum, vous oubliez la méthode Character.isLetterOrDigit
:
boolean x;
String character = in.next();
char c = character.charAt(0);
if(Character.isLetterOrDigit(charAt(c)))
{
x = true;
}
Ceci est un peu délicat, la valeur que vous entrez au clavier est une valeur de chaîne, vous devez donc pointer le premier caractère avec la méthode line.chartAt(0)
où, 0 est l'index du premier caractère et stocker cette valeur dans une variable char comme dans char c= line.charAt(0)
now avec l'utilisation de la méthode isDigit()
et isLetter()
de la classe Character
, vous pouvez faire la différence entre un chiffre et une lettre.
voici un code pour votre programme:
import Java.util.Scanner;
class Practice
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("Input a letter");
String line = in.nextLine();
char c = line.charAt(0);
if( Character.isDigit(c))
System.out.println(c +" Is a digit");
else if (Character.isLetter(c))
System.out.println(c +" Is a Letter");
}
}
En utilisant expressions régulières :
boolean isChar = character.matches("[a-zA-z]{1}");
boolean isDigit = character.matches("\\d{1}");
char charInt=character.charAt(0);
if(charInt>=48 && charInt<=57){
System.out.println("not character");
}
else
System.out.println("Character");
Recherchez la table ASCII pour voir comment la valeur int est codée en dur.
char temp = yourString.charAt(0);
if(Character.isDigit(temp))
{
..........
}else if (Character.isLetter(temp))
{
......
}else
{
....
}
import Java.util.*;
public class String_char
{
public static void main(String arg[]){
Scanner in = new Scanner(System.in);
System.out.println("Enter the value");
String data;
data = in.next();
int len = data.length();
for (int i = 0 ; i < len ; i++){
char ch = data.charAt(i);
if ((ch >= '0' && ch <= '9')){
System.out.println("Number ");
}
else if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')){
System.out.println("Character");
}
else{
System.out.println("Symbol");
}
}
}
}
C'est le moyen de vérifier si un caractère est alphabet ou non
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char c = sc.next().charAt(0);
if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
System.out.println(c + " is an alphabet.");
else
System.out.println(c + " is not an alphabet.");
}
Vous pouvez le faire par expression régulière comme suitvous pouvez utiliser ce code
EditText et = (EditText) findViewById(R.id.editText);
String NumberPattern = "[0-9]+";
String Number = et.getText().toString();
if (Number.matches(NumberPattern) && s.length() > 0)
{
//code for number
}
else
{
//code for incorrect number pattern
}
Vous devez convertir votre chaîne en caractère ..
String character = in.next();
char myChar = character.charAt(0);
if (Character.isDigit(myChar)) {
// print true
}
Vérifiez Caractère pour d'autres méthodes ..
J'ai codé un exemple de programme qui vérifie si une chaîne de caractères contient un nombre! Je suppose que cela servira aussi à cette fin.
public class test {
public static void main(String[] args) {
String c;
boolean b;
System.out.println("Enter the value");
Scanner s = new Scanner(System.in);
c = s.next();
b = containsNumber(c);
try {
if (b == true) {
throw new CharacterFormatException();
} else {
System.out.println("Valid String \t" + c);
}
} catch (CharacterFormatException ex) {
System.out.println("Exception Raised-Contains Number");
}
}
static boolean containsNumber(String c) {
char[] ch = new char[10];
ch = c.toCharArray();
for (int i = 0; i < ch.length; i++) {
if ((ch[i] >= 48) && (ch[i] <= 57)) {
return true;
}
}
return false;
}
}
CharacterFormatException
est une exception définie par l'utilisateur. Suggérez-moi si des modifications peuvent être apportées.