如何更改等于答案(true或false)为(yes或no)?

kr98yfug  于 2021-06-29  发布在  Java
关注(0)|答案(3)|浏览(522)

这个问题在这里已经有答案了

java-将布尔值更改为yes no(4个答案)
22天前关门了。

public static void main(String[] args)  {
    Scanner in = new Scanner(System.in);
    String inpStr = in.nextLine();
    System.out.println(inpStr);
    char temp;
    char[] arr = inpStr.toCharArray();
    int len = arr.length;
    for(int i=0; i<(inpStr.length())/2; i++,len--) {
        temp = arr[i];
        arr[i] = arr[len-1];
        arr[len-1] = temp;
    }
    System.out.println("Comparing " + inpStr + " and " + String.valueOf(arr)+ " : " + inpStr.equals(String.valueOf(arr)));
}

上面的代码将输出true或false,但我希望它输出yes或no。如何实现这一点?

mzaanser

mzaanser1#

最简单的方法就是使用三元运算符 ?: 具体如下:

System.out.println("Comparing " + inpStr + " and " + String.valueOf(arr)+ " : " 
       + (inpStr.equals(String.valueOf(arr)) ? "yes" : "no"));
vqlkdk9b

vqlkdk9b2#

您可以使用函数来转换它或内联此代码。

import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String inpStr = in.nextLine();
    System.out.println(inpStr);
    char temp;
    char[] arr = inpStr.toCharArray();
    int len = arr.length;
    for (int i = 0; i < (inpStr.length()) / 2; i++, len--) {
      temp = arr[i];
      arr[i] = arr[len - 1];
      arr[len - 1] = temp;
    }
    System.out
        .println("Comparing " + inpStr + " and " + String.valueOf(arr) + " : " + convertFromBool(inpStr.equals(String.valueOf(arr))));
  }

  private static String convertFromBool(boolean someBool) {
    return someBool ? "Yes" : "No";
  }
}
yqkkidmi

yqkkidmi3#

要将布尔值转换为“yes”/“no”,需要使用一个条件:如果为true,则将其设为“yes”,否则将其设为“no”:

boolean value = …;
final String answer;
if (value) {
    answer = "yes";
} else {
    answer = "no";
}

但这要写很多,不能用作表达式,因此通常首选使用三元条件运算符:

boolean value = …;
final String answer = value ? "yes" : "no";

如果您不想重复自己的操作,可以很容易地将其 Package 在函数中:

public static String yesNo(final boolean value) {
   if (value) {
       return "yes";
   } else {
       return "no";
   }
   // or, shorter: return value ? "yes" : "no";
}

然后在任何地方使用: boolean b = …; System.out.println(yesNo(b));

相关问题