Java string format Zustand
Möchte ich einen Satz zu schreiben, der ist abhängig von Geschlecht, hier ist, was ich tun könnte:
String createSentence(String name, boolean isMale) {
return String.format(isMale ? "I met %s, he was OK." : "I met %s, she was OK.", name);
}
aber Sie sehen schon das scheitern in sich, dass (es funktioniert, aber der code ist duplicit), möchte ich etwas wie:
String createSentence(String name, boolean isMale) {
return String.format("I met %s, %b?'he':'she' was OK.", name, isMale);
}
Diese ofc nicht funktioniert, aber ist so etwas möglich?
EDIT:
Da möchte ich viele Sätze erzeugt werden, sogar in verschiedenen Sprachen, und Sie werden gespeichert, ist eine Art oder ein array, so ist diese Lösung unpraktisch:
static String createSentence(String name, boolean isMale) {
return String.format("I met %s, "+(isMale?"he":"she")+" was OK.", name);
}
- Was nicht funktioniert? Dein Beispiel funktioniert perfekt.
- Dein erstes Beispiel funktioniert gut für mich.
- Ja, es funktioniert, aber es erzeugt Doppelzüngigkeit
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie etwa
oder
Wenn Sie ändern, können Art der
isMale
integer, die zum Beispiel darstellen würde-mapping0
->she
,1
->he
könnten Sie MessageFormat und seine
{id,choce,optionValue}
Können Sie sich für eine Kombination:
Könnte passieren das Pronomen selbst dann nicht sorgen zu machen über jede Bedingung.
Wenn Sie brauchen, um mit booleschen Variablen, die Sie implementieren können, ein Dekorateur.
Versuchen Sie dies :