我想用三元运算符写多个语句。但是不知道如何写。
我要这样
public static void main(String[] args) {
String replaceString,newString;
Scanner user_input=new Scanner(System.in);
String input=user_input.next();
boolean choice=true;
if(choice==true){
System.out.println("Enter string to replace");
replaceString=user_input.next();
System.out.println("Enter new string");
newString=user_input.next();
input.replace(replaceString, newString);
}
}
我想使用三元运算符在Java中编写以上代码。请帮助
最佳答案
不确定您要在这里做什么或为什么要这样做。另外,我将专注于您的特定问题,而不是您对Scanner
的使用。
您不喜欢示例代码的if
语句吗?
为什么要使用三元运算符?
底线:我认为三元运算符不适合您可能要尝试执行的操作。
Java三元运算符是编写简化的if...else...
分配的单行方法。在示例代码中,您有一个if
但没有else
-没有明显的赋值-除非您打算分配该行的结果...input.replace(replaceString, newString);
...转换为String变量。关于您的意图,我可能完全错了。
只要方法返回期望的类型,就可以通过方法分配三元运算符的值(在?问号之后并以:冒号分隔)。
以下使用三元运算符:
//
// BAD use of the ternary operator - NOT RECOMMENDED:
//
public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);
String input = userInput.next();
boolean choice = true;
String replaced = (choice == true) ? whenTrue(userInput, input) : null;
}
private static String whenTrue(Scanner userInput, String input) {
System.out.println("Enter string to replace");
String replaceString = userInput.next();
System.out.println("Enter new string");
String newString = userInput.next();
return input.replace(replaceString, newString);
}
我认为您最好使用
if
。关于java - Java中具有多个语句的三元运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60248340/