字符串函数 "CharAt" 在 "char" 中存储和显示数值
String function "CharAt" storing and displaying numeric values in "char"
好的,我正在使用这个字符串函数 "charAT" 来存储要存储在 char r 中的字符变量。但我们知道用户可以输入任何内容。当用户输入 123 或 5 之类的数值时,charAt 会将其存储在 char 变量 r 中。例外应该来了,但它没有。 char 变量如何能够保存数值。我怎样才能解决这个问题?我希望 "r" 仅保存 char 值,并希望在用户输入数值时发生异常。
package string;
import java.util.Scanner;
public class Example
{
Scanner s1;
String str;
char r;
Example()
{
s1 = new Scanner(System.in);
}
void display()
{
while(true)
{
try {
System.out.println("Please enter the grade");
str = s1.nextLine();
r = str.charAt(0);
System.out.println("The grade is "+ r);
break;
}
catch(Exception e)
{
System.out.println("you have entered an invalid input. Please try again \n");
}
}
}
public static void main(String[] args)
{
new Example().display();
}
}
在Java中String
和char
的值也可以接受数值。因此,如果您输入 123 作为输入,则字符串将为“123”,字符将为 1
。如果您只想获取字母作为输入,那么您可以使用 Java 的 Scanner
class 中的 hasNext
方法来完成。这将使用 Regular Expression
例如 [A-Za-z]
来确保只能输入字母。
while(true)
{
try
{
System.out.println("Please enter the grade");
while (!s1.hasNext("[A-Za-z]+")) {
System.out.println("you have entered an invalid input. Please try again \n");
s1.next();
}
str = s1.next();
r = str.charAt(0);
System.out.println("The grade is "+ r);
break;
}
catch (Exception e)
{
System.out.println("There was an exception \n");
}
}
听起来你需要测试字符是否在特定的 ASCII 范围内:
ascii = (int) str.toLowerCase().charAt(0);
if ( ( ascii >= (int) 'a' ) && ( ascii <= (int) 'f' ) ) {
// Valid!
} else {
// Invalid!
}
好的,我正在使用这个字符串函数 "charAT" 来存储要存储在 char r 中的字符变量。但我们知道用户可以输入任何内容。当用户输入 123 或 5 之类的数值时,charAt 会将其存储在 char 变量 r 中。例外应该来了,但它没有。 char 变量如何能够保存数值。我怎样才能解决这个问题?我希望 "r" 仅保存 char 值,并希望在用户输入数值时发生异常。
package string;
import java.util.Scanner;
public class Example
{
Scanner s1;
String str;
char r;
Example()
{
s1 = new Scanner(System.in);
}
void display()
{
while(true)
{
try {
System.out.println("Please enter the grade");
str = s1.nextLine();
r = str.charAt(0);
System.out.println("The grade is "+ r);
break;
}
catch(Exception e)
{
System.out.println("you have entered an invalid input. Please try again \n");
}
}
}
public static void main(String[] args)
{
new Example().display();
}
}
在Java中String
和char
的值也可以接受数值。因此,如果您输入 123 作为输入,则字符串将为“123”,字符将为 1
。如果您只想获取字母作为输入,那么您可以使用 Java 的 Scanner
class 中的 hasNext
方法来完成。这将使用 Regular Expression
例如 [A-Za-z]
来确保只能输入字母。
while(true)
{
try
{
System.out.println("Please enter the grade");
while (!s1.hasNext("[A-Za-z]+")) {
System.out.println("you have entered an invalid input. Please try again \n");
s1.next();
}
str = s1.next();
r = str.charAt(0);
System.out.println("The grade is "+ r);
break;
}
catch (Exception e)
{
System.out.println("There was an exception \n");
}
}
听起来你需要测试字符是否在特定的 ASCII 范围内:
ascii = (int) str.toLowerCase().charAt(0);
if ( ( ascii >= (int) 'a' ) && ( ascii <= (int) 'f' ) ) {
// Valid!
} else {
// Invalid!
}