kaj*_*acx 4 java string format conditional-statements
我想写一个依赖于人的性别的句子,这是我能做的:
String createSentence(String name, boolean isMale) {
return String.format(isMale ? "I met %s, he was OK." : "I met %s, she was OK.", name);
}
Run Code Online (Sandbox Code Playgroud)
但你已经看到了失败(它工作,但代码是双重的),我想要的东西像:
String createSentence(String name, boolean isMale) {
return String.format("I met %s, %b?'he':'she' was OK.", name, isMale);
}
Run Code Online (Sandbox Code Playgroud)
这个ofc不起作用,但是这样可能吗?
编辑:
因为我想要生成很多句子,即使是在不同的语言中,并且它们将被存储为某种排序或数组,因此这种解决方案是不方便的:
static String createSentence(String name, boolean isMale) {
return String.format("I met %s, "+(isMale?"he":"she")+" was OK.", name);
}
Run Code Online (Sandbox Code Playgroud)
Psh*_*emo 12
怎么样
return String.format("I met %s, "+(isMale?"he":"she")+" was OK.", name);
Run Code Online (Sandbox Code Playgroud)
要么
return String.format("I met %s, %s was OK.", name, (isMale ? "he" : "she"));
Run Code Online (Sandbox Code Playgroud)
如果您可以将类型更改isMale为整数,例如它将表示映射
0- > she,1- >he 你可以使用MessageFormat及其{id,choce,optionValue}
static String createSentence(String name, int isMale) {
return MessageFormat.format("I met {0}, {1,choice,0#she|1#he} is fine",
name, isMale);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5909 次 |
| 最近记录: |