0

私はラインアップ(inputLine)を分割したいと思っています

Country: United Kingdom
City: London

だから私はこのコードを使用しています:

public void ReadURL() {

    try {
        URL url = new URL("http://api.hostip.info/get_html.php?ip=");
        BufferedReader in = new BufferedReader(
        new InputStreamReader(url.openStream()));

        String inputLine = "";
        while ((inputLine = in.readLine()) != null) {
            String line = inputLine.replaceAll("\n", " ");
            System.out.println(line);
        }

        in.close();
    }   catch ( Exception e ) {
        System.err.println( e.getMessage() );
    }
}

メソッドを実行すると、出力はまだです

Country: United Kingdom
City: London

次のようにはなりません。

Country: United Kingdom City: London

今私は使ってみました

\n,\\n,\r,\r\n

System.getProperty("line.separator")

しかし、どれも機能せず、 を使用してreplacesplitreplaceAll何も機能しません。

改行を削除して文字列の1行を作成するにはどうすればよいですか?

詳細:私はそれが欲しいので、2つの別々の文字列があります

String Country = "Country: United Kingdom";

String City = "City: London";

それは素晴らしいだろう

4

3 に答える 3

1

System.out.println(line);useを使用する代わりに使用する必要がありますSystem.out.print(line);

新しい行はprintln()、行区切り文字列を書き込むことによって現在の行を終了するメソッドによって発生します。

于 2013-03-27T20:59:28.777 に答える
0

http://docs.oracle.com/javase/1.5.0/docs/api/java/io/BufferedReader.html#readLine()

それを読んでください。readLine メソッドは、改行やテキスト内の改行を返さず、改行によって入力を中断します。したがって、ループはテキストの塊全体を取り込みますが、行ごとに読み取ります。

また、println を呼び出して余分な改行を取得しています。読み込んだ行を印刷し、新しい行を追加してから、空白行 + 改行を印刷し、次に最終行 + 改行を印刷して、入力とまったく同じ出力 (いくつかのスペースを除く) を提供します。

println の代わりに print を使用する必要があります。

于 2013-03-27T21:00:27.247 に答える
0

グアバを見てみることをお勧めしますSplitter.MapSplitter

あなたの場合:

// input = "Country: United Kingdom\nCity: London"
final Map<String, String> split = Splitter.on('\n')
    .omitEmptyStrings().trimResults().withKeyValueSeparator(": ").split(input);
// ... (use split.get("Country") or split.get("City")
于 2013-03-27T21:10:17.027 に答える