2016-09-17 7 views
0

私はProcessingとJavaを使い慣れていないので、これはおそらくかなり単純です。ちょうど私に耐えなさい。それはちょうど私の頭の上を滑っている。処理中にコロンとスペースをカンマで置き換えようとしています

1:100

2:200

3:300など

これは私がから引っ張ってるtxtファイルは、このような数字で構成されてい

を持っているコードです

void setup() { 

    size(200,200); 

    String[] lines = loadStrings("WordFrequency.txt"); 

    lines = lines.replaceAll(":", ",");  
    lines = lines.replaceAll(" ", ",");  

    } 

} 
+0

replaceAll( ":"、 "") 'はすべてのコロンをスペースで置き換えます。 'replaceAll(": "、"、 ")replaceAll(" "、"、 ")'に変更して、コロンをコンマに置き換え、次にスペースをコンマに置き換えます。 – Vineet

答えて

0

新しい行の文字を置き換えるためのケビンの答えに追加します。 replaceは、ファイルを文字列の配列に解析している間に、改行文字をすでに解析しているために機能しません。

置換後に文字列を追加する必要があります。このようなもの:

String fileString = ""; 
for(int i = 0; i < lines.length; i++){ 
    lines[i] = lines[i].replace(":", ","); 
    lines[i] = lines[i].replace(" ", ","); 
    fileString += lines[i]; 
} 
1

あなたのコードはreplaceAll()を呼び出すために動作しません。配列を繰り返し処理し、すべてのインデックスに対して呼び出す必要があります。また、replaceAll()は正規表現を使用していることに注意してください。代わりにreplace()を使用します。詳細はthe Java APIにあります。

ステップ1:ループあなたのアレイ内のすべてのString

だから、何を記述しているのは三つのステップです。

手順2:コロンをカンマで置き換えます。

ステップ3:スペースをカンマで置き換えます。一緒にすべてを置く

、それは次のようになります。

for(int i = 0; i < lines.length; i++){ 
    lines[i] = lines[i].replace(":", ","); 
    lines[i] = lines[i].replace(" ", ","); 
} 

あなたはreplace()への最初の呼び出しから返された値に直接replace()を呼び出すためにそれを短縮することができます:

for(int i = 0; i < lines.length; i++){ 
    lines[i] = lines[i].replace(":", ",").replace(" ", ","); 
} 

しかし、このコード最初のオプションより高速ではありませんので、本当にあなたは最高のものを理解しているコードに固執してください。

+0

ありがとうございました。新しい行を "、"で置き換えようとしていますが、 lines [j] = lines [j] .replace( "\ n"、 ""); は機能しません。 –

+0

@CanoBriseno 'loadStrings()'関数は既に新しい行の文字を削除しています。つまり、各インデックスの終了位置を知る方法です。あなたは正確に何をしようとしていますか? –

関連する問題