import java.util.Scanner;
public class wheresCarlson
{
// instance variables - replace the example below with your own
public wheresCarlson()
{
// initialise instance variables
Scanner sc = new Scanner(System.in);
print("Where is Carlson?");
print("Enter the date below to find out: (MM/DD/YYYY)");
String date = sc.next();
print(date);
int value = date.charAt(4);
if (value == 1) {
print("Carlson's alarm didn't go off");
}
}
public String print(String x)
{
System.out.println(x);
return x;
}
}
我正在尝试运行if / else运行,具体取决于日期是什么,但是,如果使用扫描程序的输入运行if / else,我无法得到这个。是不是可以比较Java中的字符?
答案 0 :(得分:3)
扫描仪没有问题,但代码有点问题:
int value = date.charAt(4);
在这里看到你要做的是将字符保存为整数,因此你的if条件永远不会执行:
char value = date.charAt(4);
if(value == '1')
{...}
这应该有用。
答案 1 :(得分:2)
你在解释错误的东西。获取日期字符串的字符时,字符是"字母"。每个char由十进制值表示。看看ASCII表。 char" 1"的值将是49。 因此,您可能希望比较字符或将char解析为int表示。
比较字符:
if(value == '1'){...}
转换为int然后比较:
int intValue = Character.getNumericValue(str.charAt(4));
if(intValue == 1){...}
答案 2 :(得分:0)
您需要获取char值,而不是int值
char value = date.charAt(4);
然后比较为char
if (value == '1') {