2016-05-31 3 views
-5

Iはつの固定長さの文字列配列のすべての要素を設定

のString []トッピング= { "1234"、 "56789"、 "123456"}のような文字列を有しています。

トッピングの各要素の長さを確認する必要があります.9より小さい場合は、最後にゼロを追加する必要があります。

たとえば、配列の最初の要素は1234です。 長さが4なので、最後に "123400000"のような5つのゼロを追加する必要があります。

同様に、私はトッピングに存在するすべての要素に対してこれを行う必要があります。

最後に、私はトッピングに存在するすべての値を1つの文字列に連結する必要があります。私の出力は、 文字列x = "12340000056789000"のようにしなければならないことを意味します。

提案がありますか?

ありがとう、

+2

任意の提案を?うんJavaコード。 Google "Java String Padding" –

+0

@ScaryWombat:この場合、左と右の違いは重要だと思われます。 – Thilo

答えて

0

あなたは.length()を使って長さを取得し、それが9

String[] toppings = {"1234", "56789", "123456"}; 

for (int q = 0; q < toppings.length; q++){ 

    int length = toppings[q].length(); // # of digits 
    int maxlength = 9; 

    if (length<maxlength){ // only do this if it is below 9 
     for (int i = length; i < maxlength; i++){ // go through and add 0's 
      toppings[q] = toppings[q] + "0"; 
     } 
    } 
} 

String mix = ""; 
for (int q = 0; q < toppings.length; q++){ // add all the strings to one single string 
    mix+=toppings[q]; 
} 

System.out.println(mix); 

戻り値に達するまで、そこからわずか文字列に "0" を追加することができます。

12340000056789000
2

すべての項目をループして、右パッドを印刷してください。 Java 8:

toppings.stream.map(s -> String.format("%-09d", s)).collect(Collectors.joining()); 

//  ^     ^       ^
// Use the stream API  Right-pad with 0  Munge them all into a single string. 
+0

あなたの答えをありがとう、それは私のために正常に働いた。ラムダの運営者にはアイデアはありません。あなたの投稿を見ることによって、私はそれらをどのように使用するかに関する知識を得ました。どうもありがとうございました – RMS

1

これを試してください。

String x = Arrays.stream(toppings) 
    .map(s -> String.format("%-9s", s)) 
    .collect(Collectors.joining()) 
    .replaceAll(" ", "0"); 
関連する問題