Ответ 1
Вы можете использовать:
if (Character.isLetter(character.charAt(0))){
....
У меня есть пользователь, вводящий один символ в программу, и он сохраняется как строка. Я хотел бы знать, как я могу проверить, является ли введенный символ буквой или цифрой. У меня есть оператор 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.
Ummm, вы, ребята, забываете метод Character.isLetterOrDigit
:
boolean x;
String character = in.next();
char c = character.charAt(0);
if(Character.isLetterOrDigit(charAt(c)))
{
x = true;
}
Используя регулярные выражения:
boolean isChar = character.matches("[a-zA-z]{1}");
boolean isDigit = character.matches("\\d{1}");
Это немного сложно, значение, которое вы вводите на клавиатуре, является строковым значением, поэтому вам нужно передать первый символ с помощью метода line.chartAt(0)
, где 0 - индекс первого символа, и сохраните это значение в char, как в 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
{
....
}
Вы можете сделать это с помощью регулярного выражения следующим образом вы можете использовать этот код
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 character = in.next();
char myChar = character.charAt(0);
if (Character.isDigit(myChar)) {
// print true
}
Отметьте Character для других методов.
Я закодировал пример программы, которая проверяет, содержит ли строка в ней число! Думаю, это послужит и для этой цели.
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
- это исключение, определяемое пользователем. Предложите мне, можно ли внести какие-либо изменения.