Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用最小if-else进行求解_Java_Logic - Fatal编程技术网

Java 使用最小if-else进行求解

Java 使用最小if-else进行求解,java,logic,Java,Logic,好了,伙计们,我需要用最小if-else条件来解决这个问题。让我解释一下我的问题。 假设有三个字符串city、state和country,我需要按以下格式打印它 city,state,country 如果city=”“,则需要 state,country city,country 如果状态为“”,则需要 state,country city,country 如果国家=“那么 如果所有字符串都是“”,则不应打印任何内容或仅打印一个“”。 和所有其他可能的条件。这三个字符串可能有值,或

好了,伙计们,我需要用最小if-else条件来解决这个问题。让我解释一下我的问题。 假设有三个字符串city、state和country,我需要按以下格式打印它

city,state,country
如果city=”“,则需要

state,country
 city,country
如果状态为“”,则需要

state,country
 city,country
如果国家=“那么

如果所有字符串都是“”,则不应打印任何内容或仅打印一个“”。 和所有其他可能的条件。这三个字符串可能有值,或者可能包含“”NOTNULL。因此,使用最小if-else条件我需要解决这个问题。
注意:不是家庭作业。

您可以通过以下方式完成:

StringBuilder sb = new StringBuilder ();
for (String s: new String [] {city, state, country})
{
    if (!s.isEmpty ())
    {
        if (sb.length () > 0) sb.append (",");
        sb.append (s);
    }
}
System.out.println (sb);
StringBuilder builder = new StringBuilder();
builder.append((city.isEmpty() ? "" : city + ","))
       .append(((state.isEmpty() ? "" : state + ",")))
       .append(((country.isEmpty() ? "" : country)));
String result = builder.toString();
if (result.endsWith(","))
    result = result.substring(0, result.length() - 1);
System.out.println(result);
不过不是很优雅


另外,我会使用guava的
Joiner
来完成这样的任务。

将它们全部添加到数组或列表中,然后使用字符串生成器来构建输出,如下所示(伪代码):

String finalString =(city.equals("") ? "" : ("city"  + ",")) +
                    (state.equals("")? "" : ("state" + ",")) +
                    country.equals("") ? "" : "country"

finalString = finalString.endsWith(",") ? finalString.substring(0, finalString.length-1) : finalString;

System.out.println(finalString);
StringBuilder sb=新建StringBuilder();
对于(int i=0;i 0)
sb.deleteCharAt(sb.length()-1);

如果它们都是
?您尝试了什么?您希望何时显示逗号?必须使用逗号。这是必需的。您正在解决一个错误的问题,或者这是一个家庭作业。请尝试以下操作:(城市+“,“+州+”,“+国家”)。替换(“,”,”)。替换全部(^,|,$,”);你认为你需要parantises
(“city”+“,”)
,等等,如果
country
为空怎么办?你会打印出城市、州(结尾不需要的逗号)。你比我快!这是最好的解决方案。如果州和国家为空,但您只有城市,则似乎不起作用。打印城市,哦。是我的错。修正了。你们为什么做其他家庭作业:),很好的解决方案!为了名誉,我猜…在结尾总是会有一个额外的逗号。现在如果三个字符串都为空,它将崩溃。你的权利,再次修复:)@Dukeling最初错过了它。