2016-07-03 15 views
-2

Javaの場合、pop()関数は、ポップアウトされた値をオブジェクトの形式で返します。char値とオブジェクトの比較

私は、オブジェクトをメソッドを使用してStringに変換しました。私はStringに変換された文字を持っています。今私の質問は、もし私が2つの文字列を比較すると、それらは等しいかどうかですか?

例:(私はすでに、スタック内のいくつかの値を持っていたと仮定)

Stack<Character> stack=new Stack<>(); 
Character c=stack.pop(); 
//let the returned value is : a 
String a=c.toString(); 
String b=Character.toString('a'); 

私のように2つの文字列を比較する場合:今

if(a.equals(b)){System.out.println("same");} 

条件が真になるのでしょうか?

+0

これに変換:したがって、あなたは、あなたがこの

import java.util.Stack; public class test { public static void main(String[] args) { Stack<Character> stack=new Stack<>(); stack.push('a'); Character c=stack.pop(); if(c=='a') System.out.println("same"); } } 

説明のような単純な何かを行うことができます直接

または

を文字クラスのオブジェクトを比較することができます文字 'a'がスタックの一番上からポップされるたびに条件が成立します。このコードを自分で実行しようとしましたか? –

+0

もちろんそうです... equalsメソッドは変数の値を比較するため... – norbertoonline

+0

文字の平等性を直接テストすることを検討しましたか?両方を 'String'に変換すると動作しますが、効率が悪くなります。 –

答えて

1

それがないが、これは効率的な方法でも、スタックの最上位は、与えられた文字と同じであるかどうかを確認する推奨方法でもありません勿論

この

import java.util.Stack; 

public class test 
{ 

    public static void main(String[] args) 
    { 
     Stack<Character> stack=new Stack<>(); 
     stack.push('a'); 
     Character c=stack.pop(); 
     if(c.compareTo('a')==0) 
      System.out.println("same"); 
    } 
} 

説明してみます。javaのCharacterクラスをComparableインターフェイスを実装しています。 Characterオブジェクトがun-boxedで、原始的な文字型

+0

助けてくれてありがとう!私はプログラムを実行しようとしましたが、compareTo()は常に負の数になります。 – Raman

+0

上記のコードを実行しましたか?私はテストの後に投稿し、彼らは正常に動作します – MysticForce

+0

私は私の質問を更新しました。それを見てみましょう。 – Raman

関連する問題