• ベストアンサー

equalsの逆

javaで、文字列の場合は比較演算子の「==」は用いずに if ((str1.getText()).equals(str2)){ (※…str1,2は文字列) と書きますよね? この逆で、文字列str1とstr2は等しくないとき、にはif以下の条件文をどのように書けばよいでしょうか?

  • Java
  • 回答数2
  • ありがとう数8

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>if !((str1.getText()).equals(str2)){ あくまで if(){ } に !(str1.getText()).equals(str2) が入っているので if !((str1.getText()).equals(str2)){ じゃなくて if (!(str1.getText()).equals(str2)){ こう。

その他の回答 (1)

回答No.1

単純に否定演算子!で !((str1.getText()).equals(str2)) #いやまぁ!(str1.getText()).equals(str2)だけでもいいかもしれないけど、 俺の場合(!(str1.getText())).equals(str2)と誤読するんで

RaiDeen
質問者

補足

はじめそう思って  if !((str1.getText()).equals(str2)){ にしたんですが、コンパイル時に  '('がありません。 になるんです。。。

関連するQ&A

  • equalsと==について

    今まで、equalsは主に文字列の比較、==はプリミティブ型の比較と言うことで仕事で使っておりました。 しかし、文字列も==が使えることがわかりました。 String a = "aaa"; String b = "aaa"; という変数がある場合、今までは if(a.equals(b))とやっておりました。(と教わりました) が、if(a==b)でも同一の結果が得られることがわかりました。 実際、Stringクラスのソースを見ると、最初に==かどうかをif文を使って判定してます。 具体的にどう違うのか、ご存知の方教えてください。 また、どちらが良いのかも教えてください。 宜しくお願いします。

    • ベストアンサー
    • Java
  • equalsと==

    Stringの比較の時に==ではなくequals()を使うのは以下のサイトでわかったんですが http://www.atmarkit.co.jp/fjava/onepoint/java/jv14.html では逆にintなどが==でOKなのは同じ数字の場合は同じリファレンスをみているのですか?

    • ベストアンサー
    • Java
  • 文字列比較の演算子

    Perl の世界から PHP にやってまいりました。 Perl では、文字列の比較には専用の演算子がありまして、 str1 eq str2 とすると、二つの文字列が同値かどうか調べられますが、PHP にはこのような演算子はないのでしょうか? www.php.net のマニュアルを見ても、そのような演算子がありません。 == 演算子が使えるものかと <?php $str1 = "this is string" ; $str2 = "this is string" if( $str1 == $str2 ) { echo "two string is same" ; } ?> などを試してみるとうまくいくようですが、www.php.net のマニュアルには「文字列を数値化して比較する」と書いてあり、本当に文字列比較が出来るか確信がもてず…。 結局、文字列を比較したいときには strcmp を呼び出していますが、これは PHP 的には正しいのでしょうか?

    • ベストアンサー
    • PHP
  • (Java) == と equals について

    Javaで、 「もしtestという参照型変数がnullだったら○○する」 というIF文を書きたい場合は、 下記ABどちらの方法が正しいのでしょうか? (判定したい内容によっても異なるかも知れませんが。) ■パターンA Test test = null; if (test.equals(null)) { //TODO } ■パターンB Test test = null; if (test == null) { //TODO } よろしくお願いします。

    • ベストアンサー
    • Java
  • 小文字、大文字変換

    こんにちは。 javaの勉強をやっているのでですが 思うとおりに進みません。 一文字ずつ小文字なら大文字に大文字なら小文字に変換するといったものです。 途中経過です。 import java.io.*; class Ex60{ public static void main(String args[])throws IOException{ String str3 ="0"; String output = "0"; String s1 = new String("end"); while(str3.equals(s1) == false ){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(str3.equals(s1) == false ){ System.out.print(">"); str3 = br.readLine(); if(str3.equals(s1) == true) break; for(int i=0; i<str3.length(); i++){ char c = str3.charAt(i); if(Character.isLowerCase(c)) output = str3.toUpperCase(); else if(Character.isUpperCase(c)) output= str3.toLowerCase(); } System.out.println("入力された文字列は" + str3 + "です。"); System.out.println("大文字小文字を変換すると" + output + "です。"); } } } } /* 実行結果 >abc 入力された文字列はabcです。 大文字小文字を変換するとABCです。 >AbC 入力された文字列はAbCです。 大文字小文字を変換するとabcです。 >AAb 入力された文字列はAAbです。 大文字小文字を変換するとAABです。 */ 条件として一文字が大文字か小文字の判定にはCharacterクラスの isLowerCase()メソッド、isUpperCase()メソッド 一文字の変換はtoUpperCase()メソッド、toLowerCaseメソッドを使います。 どなたかよろしくおねがいします。

  • ifの条件式で文字列を使う場合

    例えば、 String str = "条件";//こういう場合に、 if(str == "条件")//これはだめだけど、 if(str.equals("条件"))//これはいい となると思います。 何となく、上の式でも通じそうなのですが、なぜ動かないのでしょうか? 「そういうもん」と思うべきことなのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • equals()について

    プログラミングの勉強をしています。 endと入力するとプログラムを終了すると言ったプログラムです。 以下のプログラムなのですが、 import java.io.*; class Ex58{ public static void main(String args[])throws IOException{ String s=""; String t = "end"; int number = 0; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(!s.equals(t)){ System.out.print(">"); s = br.readLine(); System.out.println("入力された文字列は" + s + "です。"); System.out.println((number+1) + "番目の文字は" + s.charAt(number) + "です。"); System.out.println((number+2) + "番目の文字は" + s.charAt(number+1) + "です。"); System.out.println("文字列の長さは" + s.length() + "です。"); } } } このプログラムの中で System.out.println((number+1) + "番目の文字は" + s.charAt(number) + "です。"); System.out.println((number+2) + "番目の文字は" + s.charAt(number+1) + "です。"); System.out.println("文字列の長さは" + s.length() + "です。"); を書き加えたところendが入力されても処理が終了しない プログラムになってしまいました。 どなたか助言をよろしくおねがいします。

    • ベストアンサー
    • Java
  • C言語プログラミング 初心者

    現在2つの文字列を比較するstrcmp()関数と同じ動作をするプログラムを制作しています。 もちろん、strcmp()は一切用いません。 何とか作ってみたものの、文字列が等しいときなどにはうまく作動しません。 分かる方アドバイスお願いします。 以下のプログラムでは2つの50文字以下の文字列を入力することを想定しています。 #include<stdio.h> int main(void) { char str1[50],str2[50]; int a,b,i; printf("第1の文字列を入力してください: "); gets(str1); printf("第2の文字列を入力してください: "); gets(str2); /*文字列の長さを確認します*/ for(a = 0;str[a];a++) ; for(b = 0;str2[b];b++) ; printf("%s ha %d mozinonagasadesu\n",str1,a); printf("%s ha %d mozinonagasadesu\n",str2,b); /*文字列を比較します*/ for(i = 0;;i++){ if(str1[i] > str2[i]) printf("%s は %s より大きい\n"str1,str2); else if(str1[i] < str2[i]) printf("%s は %s より小さい\n"str1,str2); if(str1[i] > str2[i] || str1[i] <str2[i]) break; } for(i=0;str1[i] && str2[i];i++) if(str1[i] == str2[i] ) printf("文字列は等しい\n"); /*上のプログラミングだとstr1がaab、str2がaacのときも文字列が等しいと表示してしまうので、ぴったり等しいときのみ表示するにはどのように条件付けしたらよいでしょうか?*/ return 0; } ちなみにstr1[0]=a ,str1[1]=b, str2[0]=a, str[1]=b, str[2]=cが格納されていた場合、str1 < str2になると思うのですが正しいでしょうか? もし正しければこの場合str1[2]にはヌル文字が入っており、それがstr2[2]のcと比較されたためなのでしょうか? いろいろと質問してしまいましたが、分かる方解答お願いします。

  • 数字の判定

    初めまして、ver_51 と言います。今、文字列に入っている中身が数字でなければエラーを出すプログラムを作りたいと考えています。 例えば String a; があるとすると、a が "123" であればエラーを出さないが、"abc" や "あいうえお" や "123"(全角) であればエラーを出すといった感じです。 下記の if 文の条件をどのようにしたらよいでしょうか。 if(a.equals(ここの条件)) System.out.println("エラー"); JavaScript のテキストから入力された場合だと以下のような感じになると思うのですが、Java の文字列でこの様なことを実現するのは無理でしょうか? <SCRIPT LANGUAGE="JavaScript"> function check(){ var a=document.~.value; if(a.search(/[^0-9]/)>=0){ alert("エラー"); return false; } } </SCRIPT> 初歩的な質問だと思いますが、すごく困っています。 回答していただけたらすごく助かります。宜しくお願いします。

    • ベストアンサー
    • Java
  • VBAで文字列を各セルに出力

    はじめまして。 業務でVBAを使うことになり、勉強中なのですが、 動的な文字列をスペースごとに区切り、各セルに出力する方法がわかりません。 どなたかご教授ください。 str = "EMPNO = 1111 AND DEPTNO = 4444" という文字列を 演算子 フィールド 条件 比較値 ------------------     EMPNO  | = | 1111 AND | DEPTNO  | = | 4444 となるようにしたいのです。