4

開いているソケットから IP アドレスを取得すると、誰かが私にストリームを送ってきたので、IP にスラッシュが含まれていることに気付きました。

私は単にそれを省略するつもりです。しかし、最初に、文字列の最初の文字がスラッシュであることを検証したいと思います。

String dataSource = data.getAddress().toString();

if(dataSource.substring(0,1) == "/"){
    System.out.println("trailing forward slash, delete it ");  
    dataSource = dataSource.substring(1);
}

この IF ステートメントは検出されていません。

誰かが私が間違っていることを見ていますか?

4

11 に答える 11

2

文字列比較の場合は、メソッドを使用します。演算子equalsを使用するよりも信頼性が高いためです(参照を比較しながらコンテンツを比較します)。====

equalsメソッドを使用してみてください:

if(dataSource.substring(0,1).equals("/")){
于 2012-12-19T04:15:21.963 に答える
2

.equals を使用してください

if("/".equals(dataSource.substring(0,1))){
    System.out.println("trailing forward slash, delete it ");  
    dataSource = dataSource.substring(1);
}

== の代わりに

于 2012-12-19T04:16:13.517 に答える
2

最初の文字だけをテストしたい場合は、メソッドを試すことができます。

dataSource.charAt(0)=='/'

于 2012-12-19T04:17:35.270 に答える
1

.equals文字列の比較に使用する必要があります

if(dataSource.substring(0,1) == "/")

する必要があります

if ("/".equals(dataSource.substring(0,1)))
于 2012-12-19T04:15:21.683 に答える
0

equals値を比較するときに常に使用します。indexOf目的に合わせてメソッドを使用できるとは言っても

   if (dataSource.indexOf('/') == 0) {
        dataSource = dataSource.substring(1);
    }
于 2012-12-19T04:28:55.537 に答える
0
String dataSource = "/hell";

        if(dataSource.substring(0,1).equalsIgnoreCase("/")){
            System.out.println("trailing forward slash, delete it ");  
            dataSource = dataSource.substring(1);
        }

このプログラムを実行します。これは働いています..

于 2012-12-19T04:52:06.093 に答える
0

文字列の比較には.equals(Object)orを使用します。.equalsIgnoreCase(String)

于 2012-12-19T04:15:26.713 に答える
0

dataSource.substring(0,1).equals("/")実際に文字列の内容をチェックする必要があります。==両側が同じオブジェクトかどうかのみをチェックします。

于 2012-12-19T04:16:34.847 に答える
0

文字列を使用する理由 あなたは自分のためにこの問題を作り出しているだけです。提供されたデータ型を使用します。

InetAddress dataSource = data.getInetAddress();

また

SocketAddress dataSource = data.getRemoteSocketAddress();

次に、両方のケースで意味を認識する.equals()メソッドがあります。

于 2012-12-19T07:09:40.710 に答える
0

文字列を と比較して==います。つまり、これら 2 つの文字列が文字通り同じ文字列参照であるかどうかを確認しています。

equal()2 つの文字列に同じ文字が含まれているかどうかを確認するために使用します。

参照: http://www.leepoint.net/notes-java/data/expressions/22compareobjects.html

于 2012-12-19T04:15:09.607 に答える
0

これを試して

if (("チェックする文字列").equals(myString)){ doSomething(); }

于 2012-12-19T04:17:07.297 に答える