さて、数値を取得して int 配列に格納する際に問題があります。コードの基本的な概要はわかりましたが、ゼロ以外の数字のグループの前に 0 がある場合に表示される方法でそれらを保存するのに問題があります。
たとえば、これを行うと:
String s = "030142165109876";
private static void breakCode(String s){
int x = s.length(), m = 0, l = x/5;
String[] array = s.split("");
int[] output = new int[l+1];
int[] results = new int[array.length];
for(int i = 0; i < x/5; i++){
double y = 0;
if(i == 0){
for(int r = 5; r >= 0; r--){
try {results[m] = Integer.parseInt(array[m]);} catch (NumberFormatException nfe) {};
y = y + (Math.pow(10, r) * results[m]);
m++;
}
output[i] = (int) y;
System.out.println(output[i]);
}
if (i != 0){
for(int r = 4; r >= 0; r--){
try {results[m] = Integer.parseInt(array[m]);} catch (NumberFormatException nfe) {};
y = y + (Math.pow(10, r) * results[m]);
m++;
}
output[i] = (int) y;
System.out.println(output[i]);
}
}
}
このコードの出力は次のとおりです。
3014
21651
9876
ゼロを左側に保持するにはどうすればよいですか? 累乗関数を使用していて、その累乗の左端の値が印刷時に表示されないためです。int 配列に 5 桁を保持させて、数値が 10000 未満の場合に左端の値を 0 として保持する方法はありますか? 2 行目は 0 で始まらないため、5 桁すべてが適切に保持されますが、1 番目と 3 番目は保持されません (例として数字を書きました。実際のプログラムではランダムな数字が使用されます)。
完全な開示、これは割り当て用ですが、この問題を解決するために私が考えたプログラムによる方法では解決しません。私はこの Web サイト全体で特定の問題を広範囲に検索しました (信じてください、ここで検索するのが大好きになりました) が、この特定の問題に関する有用なヒントは見つかりませんでした。これは問題を解決する私自身の方法でもあり、int 配列の場所に 5 桁を保持する方法がある場合は、友人のコーディング仲間に実際に考えてもらうよりも、自分のソリューションでそれをやりたいと思います。私自身の発案ではないエレガントなソリューション。
ありがとうございました
PS私は非常に冗長です