web-dev-qa-db-ja.com

JAVA

HACKERRANKでは、このコード行は非常に頻繁に発生します。これは空白をスキップすることだと思いますが、何をするのですか"\r\u2028\u2029\u0085"意味

 scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
10
Mayank Bist

これはスキャナークラスに関連付けられています。

システムコンソールからの入力があるとしましょう

4
This is next line

int a  =scanner.nextInt();
String s = scanner.nextLine();

aの値は4として読み取られ、sの値は空の文字列になります。これは、nextLineが同じ行の次の行を読み取るだけなので、nextLineにシフトします。


それを完全に読むには、以下のようにもう一度nextLine()を追加する必要があります

int a  =scanner.nextInt();
scanner.nextLine();
String s = scanner.nextLine();

入力に異常がある場合、次の行に到達し、すべてをスキップすることを保証する

scan.skip("(\r\n|[\n\r\u2028\u2029\u0085])?"); 

上の行は、すべてのOSと環境で完全に機能します。

0
RohitKumar