我让用户在程序中输入单个字符并将其存储为字符串。我想知道如何检查输入的字符是字母还是数字。我有一个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.");
答案 0 :(得分:68)
您可以使用:
if (Character.isLetter(character.charAt(0))){
....
答案 1 :(得分:24)
您可以使用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源代码。
答案 2 :(得分:15)
Character.isLetterOrDigit
方法:
boolean x;
String character = in.next();
char c = character.charAt(0);
if(Character.isLetterOrDigit(charAt(c)))
{
x = true;
}
答案 3 :(得分:6)
这有点棘手,你在键盘上输入的值是一个String值,所以你必须使用方法line.chartAt(0)
来调整第一个字符,其中0是第一个字符的索引,并存储这个char c= line.charAt(0)
中的char变量中的值
现在,通过使用Character
类isDigit()
和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");
}
}
类{},您可以区分数字和字母。
这是您的程序代码:
{{1}}
答案 4 :(得分:5)
boolean isChar = character.matches("[a-zA-z]{1}");
boolean isDigit = character.matches("\\d{1}");
答案 5 :(得分:3)
char charInt=character.charAt(0);
if(charInt>=48 && charInt<=57){
System.out.println("not character");
}
else
System.out.println("Character");
查找ASCII表以查看int值是如何硬编码的。
答案 6 :(得分:2)
char temp = yourString.charAt(0);
if(Character.isDigit(temp))
{
..........
}else if (Character.isLetter(temp))
{
......
}else
{
....
}
答案 7 :(得分:2)
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");
}
}
}
}
答案 8 :(得分:1)
您可以通过正则表达式执行此操作,如下所示 你可以使用这段代码
$(document).on('blur', '.part', function(){
var oldNumber = $(this).val().toUpperCase();
var parent = $(this);
$.post("part-interchange.php",{ part:$(this).val() } ,function(data) {
//no data back then add class Red remove Green
if (data=='no') {
parent.removeClass('shadeChange');
parent.removeClass('shadeGood');
parent.addClass('shadeBad');
} else if (data=='yes') {
parent.removeClass('shadeChange');
parent.removeClass('shadeBad');
parent.addClass('shadeGood');
} else if (data!='yes') {
parent.removeClass('shadeBad');
parent.removeClass('shadeGood');
parent.addClass('shadeChange');
parent.val(data);
}
});
});
答案 9 :(得分:1)
这是如何检查给定字符是否为字母
的方法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.");
}
答案 10 :(得分:0)
您需要将字符串转换为字符..
String character = in.next();
char myChar = character.charAt(0);
if (Character.isDigit(myChar)) {
// print true
}
检查Character了解其他方法..
答案 11 :(得分:0)
我编写了一个示例程序,用于检查字符串中是否包含数字!我想它也可以用于此目的。
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
是用户定义的异常。建议我是否可以进行任何更改。