1

Google APIを使用して、データからQR コードを生成します。VCARD 形式を表す必要があります。私はこのURLを呼び出します。

QR コードを読み取ると、1 つの小さなエラーを除いて、リンクに追加したすべての情報がうまく返されました。

行 sperators が機能していません。

Java(Android)でこれを取り戻しました:

BEGIN:VCARD\nVERSION:2.1\nFN:Adam Varhegyi\nN:Adam;Varhegyi\nEMAIL:somemai@address.com\nTEL:1234567\nINTERNET:;\n\nORG:Mycompanyname\nEND:VCARD

これの代わりに: (\n = 改行)

BEGIN:VCARD\nVERSION:2.1
FN:Adam Varhegyi
N:Adam;Varhegyi
EMAIL:somemai@address.com
TEL:1234567
INTERNET:;
ORG:Mycompanyname
END:VCARD

次のようなスキャナーを使用して、回避しようとしました。

Scanner sc = new Scanner(myVCardStringInputFromQrCode);
sc.useDelimiter("\n");
while(sc.hasNext()){
    String str = sc.next();
    Log.i("VCARD LINE: ", str);
}

そして、このメソッドは 1 行しか返しません! また、「\n」マークも無視されます。

編集:

も使ってみましSystem.getProperty("line.separator")たがダメでした。

編集パート 2:

if(myVCardStringInputFromQrCode.contains("\n")){
    Log.i("Found linebreak", "TRUE");
}
else{
    Log.i("Found linebreak", "FALSE");
}

このコードは「FALSE」を返します-Javaは、「\ n」が含まれていることがはっきりとわかるのに、含まれていないと言います。

ここで何が起こっているか知っている人はいますか?

編集パート 3:

なぜか正解が削除されてしまったので、「回答」としてマークできません。解決策は「\n」ではなく「\\n」であり、機能しています。

4

3 に答える 3

2

あなたが使用することができますSystem.getProperty("line.separator")

于 2013-04-13T16:05:10.163 に答える
1

表示されているの\nは、実際の改行ではありません。これはエスケープされた改行 (バックスラッシュの後に "n" 文字が続く) です。

これをすべて実際の改行に置き換えてみてください。\r\nこれは、仕様に従って vCard が使用することになっている改行シーケンスであるため、改行シーケンスを使用する必要があることに注意してください。

myVCardStringInputFromQrCode = myVCardStringInputFromQrCode.replace("\\n", "\r\n");

\\nではなく、最初の引数に渡すことを忘れないでください\n。リテラルのバックスラッシュを取得するには、2 つのバックスラッシュが必要です。

于 2013-04-15T12:57:41.750 に答える
0

\r\n\nいつも私のために働いたのではなく。

于 2013-04-13T16:11:24.577 に答える