2017-02-23 24 views
0

JavaでScannerクラスを使用して入力をしようとしています。Java Scannerでセミコロンをエスケープする方法

私のコードは次のとおりです。

Scanner scan = new Scanner(System.in); 
String newline = scan.next(); 

私の入力のようなものです:

india gate;25;3 

と私は新しい文字列で上記の文字列全体を交換しようとしている:

new delhi;23;2 

使用

私は Scannerを使用して文字列全体としてそれを取ることができますどのように

india delhi;25;3 

問題はそれだけで、文字列の最初の単語を置き換えていますし、出力のようなものですか?あなたはScannerクラスがどのように機能するかをよく読んでする必要があり、この

while (scanner.hasNextLine()) { 
    lineScanner = new Scanner(scanner.nextLine()); 
    lineScanner.useDelimiter(";"); 
    String article = lineScanner.next(); 
    // and so on... 
} 
+0

区切り記号として ';'を使用します。 –

+0

すべてのコードを表示してください。 –

+0

http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next(java.lang.String) これを参照してください。 –

答えて

0

などの区切り文字として

+0

ですが、これは私の答えで言いますが、彼女は同意しませんでした。 :) –

+0

私は彼女がセミコロンの文字列を分割するあなたの答えに問題を抱えたと思います。 – Neatname

+0

彼女はその空白に問題があります。 –

1

使用;。基本的には基本的には、next()の区切り文字として空白を使用します。これは、next()を呼び出すと、空白が見つかるまでそれを読み込んで、読み込んだものを返します。だからを"india gate;25;3"に呼び出すと、"india"が読み込まれ、スペースがヒットします。それであなたは"india"を返します。代わりに改行(あなたのように見える)まで読む場合は、nextLine()を使用します。

+0

あなたにkishanを使用していただきありがとうございます;区切り文字は文字列に基づいて分割されます。私は自分の文字列を分割するのではなく、むしろそれをそのまま保持します。 –

+0

私の編集を承認するか、他の人が混乱しないように手作業で手動で行います。 @NitikaJain –

+0

scan.usedelimeterはプロセス全体を遅くしていますが、実際にはプログラムだけが先へ進むわけではありません... –

1

使用.replaceAll("india gate;25;3", "new delhi;23;2");

出力

new delhi;23;2 
+0

入力が動的になります。 –

+0

入力が動的になる場合は、正規表現も可能ですが、より具体的には –

関連する問題