Bir boolenin nasıl bildirileceği ve yalnızca ilk ve son karakter "a" olduğunda nasıl doğru olduğu

Bir personName dizesi verildiğinde koşula eşit bir boole condition2 oluşturmaya çalışıyorum

the first or last letter in personName is 'A' (case-insensitive). e.g., 'aha' or 'A'

İşte şimdiye kadar denediklerim:

boolean condition2;
if (personName.charAt(0) = "a" || personName.charAt(personName.length()-1) = "a") {
    condition2 = true;
} else {
    condition2 = false;
}
1

6 cevap

char veri türü için tek bir teklif kullanın. ve küçük harfe dönüştürerek, büyük harfe mi yoksa küçük harfe mi izin vereceğini belirleyin.

Ayrıca, eşit olup olmadığını karşılaştırırken == değerini kullanın. bu = işareti, değer atamak içindir

if(Character.toLowerCase(personName.charAt(0)) == 'a' || 
   Character.toLowerCase(personName.charAt(personName.length()-1)) == 'a')

Bunun gibi görünecek

boolean condition2;
if(Character.toLowerCase(personName.charAt(0)) == 'a' || Character.toLowerCase(personName.charAt(personName.length()-1)) == 'a')
{
    condition2 = true;
}
else{
    condition2 = false;
}
0
katma

Java'daki char türü bir karakterdir, bu yüzden böyle bir şey aramaz mıydınız?

    boolean condition2;
    if((personName.charAt(0) == 'a' || personName.charAt(0) == 'A') && 
(personName.charAt(personName.length()-1) == 'a' || personName.charAt(personName.length()-1) == 'A'))
    {
        condition2 = true;
    }
    else{
        condition2 = false;
    }
0
katma

Sorununuz bu şekilde çözülebilir;

public static void main(String[] args) {   
    String s = "bsdadasd";
    boolean condition2;

        System.out.println(check(s.toLowerCase().charAt(0),s.toLowerCase().charAt(s.length()-1)));
    }
    public static boolean check(char a,char b){
        return (a == 'a' || b == 'a');
    }

İki karakteri, duruma bağlı olarak true veya false döndürdüğü bir yöntem için parametre olarak geçirebilirsiniz.

Her iki karakter de kendi durumuyla ilgisiz olduğundan önce onları küçük harf yaptı. toLowerCase() daha sonra char'i 0'da ve sonunda char'ı geçti.

return ifadesi size doğru veya yanlış değerini döndürür.

Ayrıca, benzer = atamak anlamına gelip gelmediğini kontrol etmek için == tuşlarını kullanın.

0
katma

Bir String'in ilk ve son karakterinin 'a' olması gereken ilk sorunuz için

boolean condition1 = false; 
if(personName.charAt(0) == 'a' && personName.charAt(personName.length()-1) == 'a') {
    condition1 = true;
}

İkinci durumunuzda, değişkenin yalnızca yaş aralığındaysa doğru olması gerektiği için [18,24]

boolean condition2 = false;
if(personAge >=18 && personAge <=24) {
    condition2 = true;
}
0
katma

Karşılaştırma işleci dışında = = ve karakterleri karşılaştırırsanız Dize dışında bu şekilde yapabilirsiniz. Yani doğru yol olacaktır:

Character.toLowerCase(personName.charAt(0)) == 'a'

Bakınız, çift eşittir ve tek alıntı.

0
katma

Yazması çılgınca

boolean b;
if (some boolean expression)
   b = true;
else
   b = false;

Yazması çok daha kolay

boolean b = some boolean expression;

Anlamadığım nedenlerden dolayı, bir 'if' ifadesinin dışında bir boolean ifade (doğru/yanlış basit değişmez değerlerden farklı olarak) yazmak için yaygın bir isteksizlik vardır.

And don't get me started on if (b == true)

0
katma