2016-05-09 4 views
1

私は2つの文字列を比較しています。私は文字列1を読んでいます。つまり、excelsheetとString 2のactualResultからexpectedResultを取得しています。 "getElementByXPath(" errorMsg_userPass " .getText();でも2つの文字列は同じですが、比較結果が偽になるとき

が、私は2つの文字列を同一視するとき、彼らは、比較の同じ結果であっても、彼らは同じではありません偽すなわち来ている

enter image description here

それが起こっている理由を私は知りません。このように。お手数ですが

答えて

0

trim()を使用して先頭と末尾のスペースを削除してください!!

+0

彼はすでにそれをやっている:出力します

String a = new String("a\u00A0b"); String b = new String ("a b"); System.out.println(a + "|" + Arrays.toString(a.getBytes())); System.out.println(b + "|" + Arrays.toString(b.getBytes())); 

を。しかし、私はあなたがassertEqualsの部分でそれをすることを意味すると思います。しかし、それはどうしても(なぜなら、過去の!(actual.trim())。equals(expected.trim()))のコードの枝に入る理由を説明するものではありません。 –

+0

はい、また 'equalsIgnoreCase()'を実行してみてください! –

+0

さて、もし彼が事件を確認したいのであれば?私は私のエラーメッセージが正しく綴られたかったでしょう。また、なぜassertEquals部分にトリムを追加すると助けになると思うのか説明しようとしていません。 –

0

実際の文字列と予想される文字列の正確なバイト数を確認することをお勧めします。たとえば、通常のスペースではなく割れないスペースがあり、同じように見えますが、等しくない場合もあります。

次のスニペットを実行して違いを見ることができます:

a b|[97, -62, -96, 98] 
a b|[97, 32, 98] 
+0

ねえ、私はしようとしました((actualResult.getBytes())。equals(expectedResult.getBytes())){ \t \t \t \t System.out.println( "String Equal"); \t \t \t \t \t \t \t}同じissue.Any他の溶液を得ます? – DoubtClear

+0

私はバイトを比較するつもりはありませんでした。実際のバイト数を正確に把握し、それらがどのように異なるかを確認する必要があります。私が答えてくれた例のように。そこでは両方の文字列が 'a b'として出力されますが、最初は '-62、-96'がスペースとして含まれています。これは破られないスペースなので、2番目のスペースは通常のスペース - '32'を含みます。そして、その違いを見てそれに作用することができます。たとえば、破損しないスペースがどこにあるかをチェックするか、「期待される」結果を作成して、適切な場所に破られないスペースが含まれ、equalsと比較するだけです。 –

+0

@DoubtClearあなたの問題の解決策を見つけましたか? –

関連する問題