0

これは初心者コースなので、おそらくもっと簡単な方法がありますが、誰かが私のコードを見て、最後の文字列を分割して印刷しない理由を教えてもらえますか? 最初の2回はうまく分割できました。

/////////////////////////////////// String line = "user=Abby&topic=0&message=I+cannot+待って+待って+雪。";

    String[] parts = line.split("&"); //split&
    String part1 = parts[0]; // user=Abby 
    String part2 = parts[1];//  topic=0
    String part3 = parts[2];//  message=I+cannotwaitforthesnow

    String[] user = part1.split("=");  //Split USER=Abby
    String user1 = user[0]; // user
    String user2 = user[1]; //  Abby

    String[] topic = part2.split("=");  //split topi=0
    String topic1 = topic[0]; // Topic
    String topic2 = topic[1]; // 0

    String[] text = part3.split("="); //split message=iasd
    String text1 = text[0]; // message
    String text2 = text[1]; // I+cannot+wait+for+the+snow


    String[] message = text2.split("+"); //split I+cannot+wait+for+the+snow.
    String message1 = message[0];//I
    String message2 = message[1];//cannot
    String message3 = message[2];//wait
    String message4 = message[3];//for
    String message5 = message[4];//the
    String message6 = message[5];//snow.


    output.println("This is the input that the client sent: ");

    System.out.println(user2);
    System.out.println(topic1 + topic2);
    System.out.println(message1 + message2 + message3 + message4 + message5 + message6);

//////////////////////

正常に動作しますが、最後にメッセージの分割を追加すると、分割も印刷もされず、空白になります。誰かが理由を教えてください。

助けてくれてありがとう

4

2 に答える 2

4

Javadocは言う

public String[] split(文字列正規表現)

指定された正規表現の一致に基づいてこの文字列を分割します。

+ は正規表現の予約文字なので、エスケープする必要があります。

于 2013-11-07T20:59:49.620 に答える
0

試してみてください

String[] message = text2.split("\\+");

Java では「+」は予約文字です。このコンテキストで使用するには、「\」でエスケープする必要があります。

于 2013-11-07T21:00:16.843 に答える