![](/img/trans.png)
[英]How to check whether a string contains lowercase letter, uppercase letter, special character and digit?
[英]How to check if a character in a string is a digit or letter
我让用户在程序中输入一个字符,并将其存储为字符串。 我想知道如何检查输入的字符是字母还是数字。 我有一个 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;
}
这有点棘手,您在键盘上输入的值是一个字符串值,因此您必须使用line.chartAt(0)
方法来调整第一个字符,其中 0 是第一个字符的索引,并将该值存储在char c= line.charAt(0)
的 char 变量现在使用方法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.println(c +" Is a digit");
else if (Character.isLetter(c))
System.out.println(c +" Is a Letter");
}
}
通过使用正则表达式:
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");
查找 ASCII 表以查看 int 值是如何硬编码的。
这是如何检查给定字符是否是字母表的方法
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.");
}
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");
}
}
}
}
您可以通过正则表达式执行此操作,如下所示您可以使用此代码
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
}
您需要将字符串转换为字符..
String character = in.next();
char myChar = character.charAt(0);
if (Character.isDigit(myChar)) {
// print true
}
检查字符以获取其他方法..
我编写了一个示例程序,用于检查字符串中是否包含数字! 我想它也将用于此目的。
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
是用户定义的异常。 如果可以进行任何更改,请建议我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.