質問

んな問題の比較文字列です。お送りい文字列をこのサーバ(バイトとして使用 getBytes() らかにするサービスです。私は確保されるエンコーディングが同一のクライアントとサーバの起動として -Dfile.encoding=UTF-8.

気付いたので、問題がっている気がします。を行う valueOf の文字列を受けていクライアントから、変換してenum.私の印刷文字列には、 正確に 同じです。がいを行う場合には compareTo, かがゼロ以外の数 equals を返します false.

私はこでエンコードの問題です。んだが--まだビットの初心者でクライアント-サーバプログラミングソケット

そして、自分の書いた文章を取得す:

Waiting for connections on port 9090
Connected to client: 127.0.0.1
received command: GetAllItems
The value is |GetAllItems| (from client)
The value is |GetAllItems| (from enum)
equals: false

なぜですか?

更新

ここではどのように思再構成の文字列からストリームです。恐らくここでしかったので、良かったかな?

byte[] commandBytes = new byte[1024];
in.read(commandBytes); //in is a BufferedInputReader
String command = new String(commandBytes);
役に立ちましたか?

解決

私の推測であることからバッファなどが有名ですが、これらを自の文字列が追加されnullのreconsituted文字列になります。この法律のためのnullの中に組み込の文字列をJavaでのCおよび当社)は、Javaの取り扱いとは異なっ標準UTF-8です。

を録音し直してください長さを読み、その長さの文字列は、文字列コンストラクタ:

int bytesRead = in.read(commandBytes);
String command = new String(commandBytes, 0, bytesRead);

他のヒント

問題はどのようすを構築する文字列です。お読みの上、バイトをバッファ長を1024いない語りの文字列コンストラクターだけを見ている関連する。でコード...

byte[] commandBytes = new byte[1024];
int length = in.read(commandBytes); //in is a BufferedInputReader
String command = new String(commandBytes, 0, length);

使用 java.text.Collator 比較文字列です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top