Hoe te controleren of een teken in een tekenreeks een cijfer of letter is

Ik laat de gebruiker een enkel teken in het programma invoeren en het wordt opgeslagen als een tekenreeks. Ik zou graag willen weten hoe ik kan controleren of het ingevoerde teken een letter of een cijfer is. Ik heb een if-statement, dus als het een letter is, wordt afgedrukt dat het een letter is, en hetzelfde voor een cijfer. De code die ik tot nu toe heb werkt niet, maar ik heb het gevoel dat ik in de buurt ben. Alle hulp die u kunt bieden, wordt op prijs gesteld.

 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.");

Antwoord 1, autoriteit 100%

Je zou kunnen gebruiken:

   if (Character.isLetter(character.charAt(0))){
    ....

Antwoord 2, autoriteit 36%

U kunt de bestaande methoden uit de klasse Character gebruiken. Bekijk de documenten:

http://download.java .net/jdk7/archive/b123/docs/api/java/lang/Character.html#isDigit(char)

Dus je zou zoiets als dit kunnen doen…

String character = in.next();
char c = character.charAt(0);
...
if (Character.isDigit(c)) { 
    ... 
} else if (Character.isLetter(c)) {
    ...
}
...

Als je ooit wilt weten hoe dit precies wordt geïmplementeerd, kun je altijd de Java-broncode bekijken.


Antwoord 3, autoriteit 22%

Ummm, jullie vergeten de Character.isLetterOrDigitmethode:

boolean x;
String character = in.next();
char c = character.charAt(0);
if(Character.isLetterOrDigit(charAt(c)))
{ 
  x = true;
}

Antwoord 4, Autoriteit 9%

Dit is een beetje lastig, de waarde die u op het toetsenbord invoert, is een tekenreekswaarde, dus u moet het eerste teken met methode verstrekken line.chartAt(0)waar, 0 is de index van het eerste teken en bewaar deze waarde in een charvariabele als in char c= line.charAt(0)
Nu met het gebruik van methode isDigit()EN isLetter()van klasse CharacterU kunt differentiëren tussen een cijfer en een brief.

Hier is een code voor uw programma:

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");
  }
}

Antwoord 5, Autoriteit 8%

Door reguliere uitdrukkingen :

boolean isChar = character.matches("[a-zA-z]{1}");
boolean isDigit = character.matches("\\d{1}"); 

Antwoord 6, autoriteit 5%

char charInt=character.charAt(0);   
if(charInt>=48 && charInt<=57){
    System.out.println("not character");
}
else
    System.out.println("Character");

Zoek naar de ASCII-tabel om te zien hoe de int-waarde hard gecodeerd is.


Antwoord 7, autoriteit 4%

Dit is de manier om te controleren of een bepaald teken een alfabet is of niet

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.");
}

Antwoord 8, autoriteit 3%

    char temp = yourString.charAt(0);
     if(Character.isDigit(temp))
     {
         ..........
     }else if (Character.isLetter(temp))
     {
          ......
      }else
     {
      ....
     }

Antwoord 9, autoriteit 3%

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");
             }
        }
    } 
}

Antwoord 10

U kunt dit als volgt doen met reguliere expressie:
je zou deze code kunnen gebruiken

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
}

Antwoord 11

Je moet je string omzetten in karakter..

String character = in.next();
char myChar = character.charAt(0);
if (Character.isDigit(myChar)) {
   // print true
}

Controleer Tekenvoor andere methoden. .


Antwoord 12

Ik heb een voorbeeldprogramma gecodeerd dat controleert of een string een getal bevat! Ik denk dat het ook voor dit doel zal dienen.

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;
    }
}

CharacterFormatExceptionis een door de gebruiker gedefinieerde uitzondering. Stel me voor als er wijzigingen kunnen worden aangebracht.

Other episodes