Várias condições

olá, tenho que fazer várias, mas várias, condições de strings e queria saber se existe uma maneira melhor de fazer do que com if, veja código:

[code]public static String recebeStr(String str) {
if ((str == "oi) || (str == “bazuca”) || (str == “ola”) || (str == “bacalhau”) || (str == “cd”)) {
return str
} else {
return “msg errada”;
}

}[/code]

A lógica é essa, ignore erros de sintaxe e a comparação de strings via “==” (naum por equal()), eu ecsrevi direto no post.

Somente com if()s mesmo. Voce nao pode usar swtich() com Strings. Um ultimo detalhe: Como no primeiro if() vc ja da um return, o else nao eh necessario… Ou seja, o seu codigo, arrumado, ficaria assim:

public static String recebeStr(String str) {
    if ("oi".equals(str) ||"bazuca".equals(str) || "ola".equals(str) || "bacalhau".equals(str) || "cd".equals(str)) {
        return str
    } 
     
    return "msg errada";
 }

Rafael

der, erro feio, valeu Rafael, poxa q pena, o código fica uma bagunça desta maneira, pior q saum strings sem sentido algum, naum tem lógica, dai tem q ser no braço hehehe.

valeu

Bom, voce pdoe fazer um metodo que recebe as strings a serem comparadas, ao inves de fazer no braco. Algo como

public String recebeStr(String[] ok, String str) {
    for (int i = 0; i < ok.length; i++) {
        if (ok[i].equals(str)) {
            return str;
        }
    }

    return "msg errada";
}

...
String[] ok = { "cd", "bacalhau", "xxx" };
String s = recebeStr(ok, "blah")

Rafael

cara boa Idéia, fica melhor, mais uma vez valeu Rafael;.

Tenda isso:
Vector nomes = new Vector();
nomes.add(“eu”);
nomes.add(“tu”);
nomes.add(“eles”);
if(nomes.contains(str))
return str
else return “msg errada”;

Eu to usando aki e funcia!

Isso, funca mesmo, parecido com a solução do rafael…

Epa, Vector é classe de satanás!! Afasta-te dela!!!

UHAuhauhauhahuahuauh, vc q é Java Evangelista qual seria o nome do vetor?

HolyVetor?