0

さて、私はこのIPのリストを手に入れました。

193.137.150.5              368 ms                DANIEL-PC             
193.137.150.7              95 ms                 N/A                   
193.137.150.13             37 ms                 N/A                   
193.137.150.17             33 ms                 N/A                   
193.137.150.24             238 ms                N/A                   
193.137.150.38             74 ms                 DUARTE-PC             
193.137.150.41             26 ms                 N/A                   
193.137.150.52             176 ms                N/A   

リストからIPのみを削除するためにJavaを使用したかったのです。

これが私のコードです:

import java.io.*;
import java.util.*;

class trim{

    public static void main(String[] args) throws Exception{
        String s;
        char c;
        int i = 0;
        Scanner in = new Scanner(System.in);

        while (in.hasNextLine()){
            s = in.nextLine();
            c = s.charAt(i);
            while (c != ' '){
                System.out.print(c);
                i++;
                c = s.charAt(i);
            }
            System.out.println();
        }
    }
}

私は何を間違っていますか?

4

5 に答える 5

3

あなたのループでは決してゼロにしないでくださいi。これは、最初の行以降の各行のオフセットが間違っていることを意味します。

    while (in.hasNextLine()){
        s = in.nextLine();
        c = s.charAt(i);
        while (c != ' '){
            System.out.print(c);
            i++;
            c = s.charAt(i);
        }
        System.out.println();
        i = 0; // Finished with this line
    }
于 2013-04-15T14:52:55.083 に答える
2
while (in.hasNextLine()){
    s = in.nextLine();
    String[] arr = s.split(" "); // if delimeter is whitespace use s.split("\\s+")  
    System.out.println(arr[0]);
}
于 2013-04-15T14:54:55.593 に答える
1

文字列を一度分割して、2番目の部分を印刷するだけです

while (in.hasNextLine()){
    s = in.nextLine();
    System.out.println(s.split(" ", 1)[1]);
}
于 2013-04-15T14:53:17.510 に答える
0

i = 0 を再初期化する必要があります。nextLine 呼び出しの後に実行できます。

    s = in.nextLine();
    i = 0;  
于 2013-04-15T14:54:08.367 に答える
0

あなたは私を再初期化していません、

    while (in.hasNextLine()){
        s = in.nextLine();
        // reset i so you start reading at line begin
        i = 0;
        c = s.charAt(i);
        while (c != ' '){
            System.out.print(c);
            i++;
            c = s.charAt(i);
        }
        System.out.println();
    }

そうは言っても、より簡単な方法があります。String.split()

于 2013-04-15T14:53:30.883 に答える