Java 设置一个布尔值

Java 设置一个布尔值,java,boolean,Java,Boolean,嗨,我正在处理布尔值,我有点困惑。我有一个布尔值: boolean answer; 这可以有两个值:是或否 如果我从标准输入中插入字符串“yes”,它将变为true,否则为false。怎么办?假设输入是您的字符串: boolean answer=input.equalsIgnoreCase(“是”)您需要执行字符串比较。使用String.equals: String a = "foo"; String b = "bar"; boolean c = a.equals(b); 如果您的字符串保存

嗨,我正在处理布尔值,我有点困惑。我有一个布尔值:

boolean answer;
这可以有两个值:是或否


如果我从标准输入中插入字符串“yes”,它将变为true,否则为false。怎么办?

假设输入是您的字符串:


boolean answer=input.equalsIgnoreCase(“是”)

您需要执行字符串比较。使用
String.equals

String a = "foo";
String b = "bar";
boolean c = a.equals(b);

如果您的字符串保存到响应中(字符串响应):

这应该做到:

boolean answer;
String input = "yes"
if (input.equals("yes")) {
   answer = true;
}

这样的东西可能很有价值:

private static final Set yesSet = new HashSet( Arrays.asList( new String[] {"1", "aam", "ae", "ām", "ano", "âre", "avunu", "awo", "aye", "ayo", "baht", "bai",
  "bale", "bele", "beli", "ben", "cha", "chaï", "da", "dai", "doy", "e", "é", "éé", "eh", "èh", "ehe", "eja", "eny", "ere", "euh", "evet", "éwa", "giai",
  "ha", "haan", "hai", "hoon", "iè", "igen", "iva", "já", "jā", "ja", "jah", "jes", "jo", "ken", "kha", "khrap", "kyllä", "leo", "naam", "ndiyo", "o", "òc",
  "on", "oo", "opo", "oui", "ova", "ovu", "oyi", "po", "sci", "se", "shi", "si", "sim", "taip", "tak", "tiao", "true", "v", "waaw", "wè", "wi", "ya", "yan",
  "ydw", "yea", "yebo", "yego", "yes", "yo", "yoh", "za", "За", "Так", "Тийм", "نعم", "ใช่", "ค่ะ", "ครับ",
} ) );
public static final boolean stringToBool ( String s ) {
  return ( yesSet.contains( s.toLowerCase() ) );
}

源自

您不需要
?真:假
。那个符号是什么意思?和:?为什么是三元?只要做‘回答=输入。相等信号(“是”)’哈,是的——这是真的。感谢您注意到.Mazzy,它是Java的三元操作。请参阅:有点困惑,是否要使用布尔值,然后根据用户的输入将其设置为true或false?或者,您想要一个可以设置为yes(是)或not(否)的项目吗?您不需要条件,只需直接指定给
answer
。这是最优雅的方式,可能使用
equalsIgnoreCase
替代。为什么每个人都要通过对
boolean
执行
if
条件设置
if
来设置
boolean
的值?@OliCharlesworth我不是对
boolean
执行
if
,我是对用户输入执行
if
input.compareTo(“yes”)==0
是一个
boolean
@OliCharlesworth,我将
input
与字符串
“yes”
进行比较,如果它们相等
compareTo
将返回0。您只需执行
answer=(input.compareTo(“yes”)==0)。或者更好的方法是,只使用
equals
。为什么每个人都要通过执行
if
布尔值为条件来设置
布尔值呢?这一点很好,尽管有时可读性也很重要。如果输入为“是”,也可能需要执行其他操作,这意味着“如果”块更合适。我相信,因为其中一些字符不是有效的UTF-8,UTF-8是存储java文件的标准。
boolean answer;
String input = "yes"
if (input.equals("yes")) {
   answer = true;
}
private static final Set yesSet = new HashSet( Arrays.asList( new String[] {"1", "aam", "ae", "ām", "ano", "âre", "avunu", "awo", "aye", "ayo", "baht", "bai",
  "bale", "bele", "beli", "ben", "cha", "chaï", "da", "dai", "doy", "e", "é", "éé", "eh", "èh", "ehe", "eja", "eny", "ere", "euh", "evet", "éwa", "giai",
  "ha", "haan", "hai", "hoon", "iè", "igen", "iva", "já", "jā", "ja", "jah", "jes", "jo", "ken", "kha", "khrap", "kyllä", "leo", "naam", "ndiyo", "o", "òc",
  "on", "oo", "opo", "oui", "ova", "ovu", "oyi", "po", "sci", "se", "shi", "si", "sim", "taip", "tak", "tiao", "true", "v", "waaw", "wè", "wi", "ya", "yan",
  "ydw", "yea", "yebo", "yego", "yes", "yo", "yoh", "za", "За", "Так", "Тийм", "نعم", "ใช่", "ค่ะ", "ครับ",
} ) );
public static final boolean stringToBool ( String s ) {
  return ( yesSet.contains( s.toLowerCase() ) );
}
boolean answer = new Scanner(System.in).nextLine().equalsIgnoreCase("yes");