我正在使用的代码应用于识别某些东西是否是数字,字母等,并反响正确。
我遇到了无法在char上使用布尔值的错误,因此我将输入的char转换为字符串。
现在我正在使用下面的代码,但不能在字符串上使用数学运算符。我需要使用char作为输入b / c程序,它应该能够识别字母和特殊字符。
我可以改用范围吗?即“ 1-9”和“ a-z”?我已经尝试了几种功能([1-9],“ [1-9]”等),但是我一直收到错误消息。我的猜测是我格式化不正确。
package charreader;
import java.util.Scanner;
import java.io.*;
public class Charreader {
public static void main(String[] args) throws IOException
{
Scanner newScan = new Scanner(System.in);
//prompt for input and read it
System.out.println("Enter a character.");
char ch = (char)System.in.read();
//convert ch to string
String st = String.valueOf(ch);
if (st >= 1 && <= 9 )
{
System.out.println("Digit");
}
else
{
System.out.println("Not a digit.");
}
我唯一要工作的是:
if (st == '0')
{
System.out.println("Digit");
}
else
{
System.out.println("Not a digit.");
但是我不想那样运行整个程序。这将是笨拙的,而且通常是不好的做法。
答案 0 :(得分:3)
在Java中,我们为此内置了方法。像这样的字符:
.card {
width: 80%;
height: 16.5rem;
border-radius: 5px;
background-color: #fff;
text-align: center;
padding: 0 1.5rem;
margin:10rem auto;
}
.card__inner-wrapper {
height: 55%;
position: relative;
margin: 0 auto;
display: flex;
justify-content: center; }
.card__img {
height: 100%;
position: absolute;
bottom: 50%;
clip-path: circle(50% at 50% 50%);
background-color: #fff;
border: 0.8rem solid #fff; }
.card__text-content {
position: absolute;
top: 6rem; }
.card__heading {
font-size: 1.8rem;
font-weight: 500;
color: #5fc0c3;
margin-bottom: 1.5rem; }
即使是字符串,也可以使用以下方法:
char a = 'b';
Character.isDigit(a);
Character.isLetter(a);
编辑:如果您不想使用Character类,我们可以这样做:
public static boolean isNumeric(String str) {
try {
int number = Integer.parseInt(str);
return true;
} catch (Exception e) {
return false;
}
}
答案 1 :(得分:1)
您似乎只想检查它是否为正数。 您可以使用:
Character.getNumericValue()
如果不是数字,则返回-1;如果不是非负整数,则返回-2。像这样:
char ch = (char)System.in.read();
if(ch.getNumericValue() > 0){
//"is a pos int"
} else {
//"not a pos int
}
答案 2 :(得分:1)
您可以使用正则表达式来获得结果。 我建议您阅读this文章,因为他们解释了如何在Java中使用正则表达式。
或者,您可以将char直接转换为int,而不是将char转换为字符串。 示例:
char c='1';
int a=Character.getNumericValue(c);
函数getNumericValue将返回一个数字。您需要记住,如果char不是数字,它将引发错误。
让您记住的最后一件事是,在Java中,对String使用单引号('/'),对char使用双引号(“ /”)。
答案 3 :(得分:0)
Java中不存在范围。 而是使用:
if ((symbol >= 'A' && symbol <= 'Z') || symbol == '?') {
// ...
}