如何检查string中的字符是数字还是字母

我有用户在程序中input单个字符,并将其存储为string。 我想知道如何检查input的字符是字母还是数字。 我有一个if语句,所以如果它的一个字母是它的字母,那么它是一个字母,而数字是相同的。 我到目前为止的代码不起作用,但我觉得我很接近。 任何帮助,你可以提供的赞赏。

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

你可以使用:

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

您可以使用Character类中的现有方法。 看看文档:

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

所以,你可以做这样的事情…

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

如果您想知道如何实现这一点,您可以随时查看Java源代码。

嗯,你们忘记了Character.isLetterOrDigit方法:

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

通过使用正则expression式 :

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

这是一个棘手的问题,你在键盘上input的值是一个string值,所以你必须用方法line.chartAt(0)第一个字符,其中,0是第一个字符的索引,并将此值存储一个字符variables,如char c= line.charAt(0)现在使用方法isDigit()isLetter()从类Character你可以区分数字和字母。

这里是你的程序的代码。

 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.printf("%s Is a digit",c); else if (Character.isLetter(c)) System.out.printf("\n%s Is a Letter",c); } } 
 char charInt=character.charAt(0); if(charInt>=48 && charInt<=57){ System.out.println("not character"); } else System.out.println("Character"); 

查找ASCII表来查看int值是如何硬编码的。

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

你可以通过Regular Expression来做到这一点,你可以使用这个代码

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

你需要将你的string转换成字符

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

检查字符的其他方法..

我编写了一个示例程序,检查一个string是否包含一个数字! 我想这也是为了这个目的。

 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是用户定义的exception。 build议我是否可以做出任何改变。