作为一个入门项目,我正在编写一个写出 pi 数字的代码。该代码提示输入 int,并打印 pi 的小数位数,这使用预先确定的字符串。问题是每个单独的数字都在单独的行上,如下所示:
3
.
1
4
1
5
9
该代码使用了一个for循环,该循环在扫描仪给出的索引处结束。它一次打印一个字符。我正在努力寻找一种方法让代码分别打印 pi 的十位数字子字符串,每个子字符串都在自己的行上,这意味着 26 位数字将像这样打印:
3 .
1415926535
8979323846
264338
这是两组,每组十个,第三组包含其余六个。我正在努力将字符串打印分成十组,并且仍然在给定索引处停止打印,即使该索引不是十的倍数。另外,旧代码中的for循环用于数字计数器,所以我想保留它。将“/n”放入字符串中以形成空格会中断计数系统,因为这些字符也会被计数和打印,从而使该选项无效。到目前为止我还没有任何其他想法来解决这个问题。如果您知道以这种方式打印的方法,请告诉我。我的代码如下,请随意复制它并进行实验,如果您决定在某个地方使用它,请相信我。
import java.util.Scanner;
public class PiWriter {
public static void main(String[] args) {
final String pi = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679";
Scanner theScanner = new Scanner(System.in);
System.out.println("How many decimal places of pi do you want to see?\nEnter an integer less than or equal to 100");
int stopAt = theScanner.nextInt();
char currentChar;
int num0 = 0;
int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
int num6 = 0;
int num7 = 0;
int num8 = 0;
int num9 = 0;
//Causes the code to ignore the "3." at the start.
stopAt = stopAt + 2;
for (int loopNum = 0; loopNum < stopAt; loopNum++) {
System.out.println(pi.charAt(loopNum));
currentChar = pi.charAt(loopNum);
//This counts how many times a digit occurs.
switch (currentChar) {
case '0':
num0++;
break;
case '1':
num1++;
break;
case '2':
num2++;
break;
case '3':
num3++;
case '4':
num4++;
break;
case '5':
num5++;
break;
case '6':
Qyouu
阿晨1998
绝地无双
相关分类