float の列を小数点に揃えたい。小数点以下のポイントを制限すると簡単に実行できることはわかっていますが、ユーザーが無制限の数と長さの浮動小数点数を入力できるようにしたいと考えています。
これは、フロートアライメントを扱う私のプログラムの一部です:
String[] input = new String[3];
System.out.format("%n%n\tEnter three floating point numbers%n");
for (int i=0;i<3;i++)
input[i] = in.nextLine();
System.out.format("\tHere they are lined up on their decimal point%n");
/*This is used to find decimal location in each string*/
int[] decLoc = new int[3];
for (int i=0; i<3; i++)
{
for(int j=1; j<=input[i].length();j++)
if(input[i].charAt(j-1) == '.')
decLoc[i] = j;
}
/*print 5 spaces before number if the decimal is at place 0, 4 spaces for 1...*/
for(int i=0;i<3;i++)
{
if(decLoc[i]==0) System.out.print(" ");
else if(decLoc[i]==1) System.out.print(" ");
else if(decLoc[i]==2) System.out.print(" ");
else if(decLoc[i]==3) System.out.print(" ");
else if(decLoc[i]==4) System.out.print(" ");
else if(decLoc[i]==5) System.out.print(" ");
System.out.println(input[i]);
}
出力:
Enter three floating point numbers
3265.3265
23.365
254.3256
Here they are lined up on their decimal point
3265.3265
23.365
254.3256
さまざまな長さのフロートを整列させるためのより良いソリューションが必要です。