2012-04-16 6 views
0

申し訳ありませんが、私の列のリストをC#で整形するのに問題があります。 私が使用しているのは、次のような入力ファイルです。 「AA BBB CCCC DDDDD eeeeee FFFFFFF」文字列の列を列に整形する際のトラブル

と文字制限(ワードラップ)私はそう 出力のような言葉アウトスペースに必要なを使用して:私は得ることができます現時点ではラップ= 20

aa bbb cccc 
ddddd eeeeee fffffff 

行ごとの単語の数ですが、例えば、折り返しのために単語が収まりきらない場合、私のプログラムはそれを別の行に置きますが、最初の行が4つの文字列を持つように行ごとに同じ数の文字列を維持する必要があります残りの文字列には文字列が小さいので5があります。

ありがとうございます。

+0

固定列サイズまたは無を超えたときに停止しますか? – msarchet

+0

いいえ、列のサイズは任意で、間隔は行内に配置され、折り返しを超えません。行の文字列の量だけが同じでなければなりません。最後の行はlessを持つことができます。 –

+0

行ごとに文字列の制限を教えてください。私はあなたが何を言っているのか理解していると思いますが、最初の行に5文字列があり、次の行に5行の大きな文字列が必要な場合には何を望んでいるのか分かりませんが、 1行あたりの文字列数 "ルール – covertCoder

答えて

0

配列内のn番目ごとの項目をループすることで、各列の間隔を調整することができます。

たとえば、1行に3単語というように、1行あたりの単語数を知っている場合、最初の要素から3番目の要素をすべて取得して最初の列の最長単語を取得できます。

ますので、forループを持っていると思います:

int longestWord = 0; 

for(int i = 0; i < arrayLength; i += wordsPerLine) 
{ 
    if(array[i].Length > longestWord) 
     longestWord = array[i].Length; 
} 

ないあなたが列ごとにこれを実装したいかどうかはわかりますが、それはアイデアですか?

0

私が考えることができる唯一の方法は複雑です 最初に文字列の分割を行うグループの数を取得し、次に各グループの文字数を取得することができます。 あなたがいることを持っている場合は、あなたがグループを作り始めることができ、およびサブグループの1が限度

//creates groups and lengths arrays 
string letters = aaa bbbb ccc dd eeeeeee ffffffffff gggggggggggggggg hh iiiiiiiiii; 
string[] groups = letters.split(" "); 
int[] lengths = new int[groups.length] 
    for(int i = 0; i<groups.length, i++){ 
    lengths[i] = groups[i].length; 
} 
int numberofrows; 
//starts doing groups: is one element is more that 20, then if 2 elements are more 
//than 20, 3 elements more than 20.... 
// when a sum is more than 20, then the last amount of groups was the one to use 
for(int i = 0, i<groups.length<i++){ 
    for(int j = 1, j<=groups.length, j++) 
     int sum = add(i, j) 
     if(sum > limit){ 
      numberofrows = j-1; 
      return; 
     } 
    } 
} 

//this makes the addition of several elements of the array, next to the other 
public int add(int index, id sums){ 
    int sum = lengths[index]; 
    for(int i = 0, i<=sums;i++){ 
     sum += lengths[index+i]; 
    } 
    return sum; 
} 
関連する問題