2016-11-29 13 views
-1

ファイル「.txt」の「\ n」から「:」に変換しています。そして、ここで、これは変換する前に、私の段落です:文字の後ろの文字は何行ですか?

enter image description here

あなたはそれを見ることができ、文字列「ホア」と文字列「Đàm」の間で、それは一つの文字「」と2つの文字「\ n」を持っています。そして、これは私の変換機能である:

private String convertData(){ 
    String different = "~`[email protected]#$%^&*()-_=+*/\\\"'|]}{[:;?/.><,\n "; 
    StringBuilder data = new StringBuilder(tvData.getText().toString().trim()); 
    for (int j = 0; j < data.length(); j++){ 
     if(different.contains("" + data.charAt(j))) data.setCharAt(j, ':'); 
    } 
    String convertData = data.toString().trim(); 
    return convertData; 
} 

そして、これが結果です: enter image description here

あなたは「\ n」は文字を持っている文字の後ろに見ることができ、それは別の文字列ではありません。
誰も私に何をすべきか教えてもらえますか?

答えて

1

- あなたは現在、しかし\n(および他のエスケープシーケンスを)やっているように進んでください。

ので、

String different = "~`[email protected]#$%^&*()-_=+*/'|]}{[:;?/.><, "; 

を使用 - ループの後、唯一のサブ"\n"および他の配列、すなわち:"\\""\""を置き換えるためにstring.replace()を使用しています。
ループを使用してシーケンスを置き換えることはできますが、1文字ではなく2文字を置き換える必要があります。


基本的には、最初のループでは、すべての単一の文字を交換してください。
次に、文字シーケンスを置き換えます。

+0

私はそれを試しましたが、動作しません –

+0

それは確かに動作します。ただ1文字を1文字に置き換えてください。それからシーケンス(一度に1つずつ、またはループで1つ)。 –

+0

私の変換関数: プライベート文字列convertData(){ 文字列different = "〜'!@#$%^&*()-_ = + */\\\ "'|}} {[:; ><「; のStringBuilderデータ=新しいStringBuilderの(。tvData.getText()のtoString()(トリム)。);のため (INT J = 0; J

1

メモ帳はWindowsの行末(\r\n)のみをサポートしているため、ファイルに含まれているものである必要があります。あなたの検索パターンに\rを追加することで、ファイルをUnixの行末(\n)に変換することができます。

関連する問題