1

我必须编写一个程序来将 5 位整数(例如 12345 或 00005)转换为在单独的行上显示每个单独数字的列。我被要求使用两种不同的方法,一种是数学方法,一种是字符串方法。虽然字符串方法完全没有给我带来任何问题,但我无法使用数学方法单独提取每个数字。到目前为止,这是我的代码。

import java.util.Scanner; //load scanner
public class digitseparator{
public static void main(String[] args){

Scanner in = new Scanner(System.in);

System.out.println("Enter a five-digit integer: ");
String name = in.nextLine();

double n = in.nextDouble();
double ffthdgt = Double.parseInt((double)n%10000);
double frthdgt = Double.parseInt((double)n%1000);
double thrddgt = Double.parseInt((double)n%100);
double scnddgt = Double.parseInt((double)n%10);
double frstdgt = Double.parseInt((double)n%1); 

System.out.println(frstdgt);
System.out.println(scnddgt);
System.out.println(thrddgt);
System.out.println(frthdgt);
System.out.println(ffthdgt);

System.out.println("String method Solution");
char frst = name.charAt(0);
System.out.println(frst);

char scnd = name.charAt(1);
System.out.println(scnd);

char thrd = name.charAt(2);
System.out.println(thrd);

char frth = name.charAt(3);
System.out.println(frth);

char ffth = name.charAt(4);
System.out.println(ffth); 
}
}
4

2 回答 2

2

一是Double没有parseInt办法。它有parseDouble,这意味着将 a 解析String为 a double。但是你已经有一个double.

接下来,您可以通过...提取一个数字

  1. 除以 10 的幂以消除所需数字右侧的数字。
  2. 用运算符取除以 10 的余数来提取最后一位数字%
于 2013-09-27T18:17:30.363 回答
0
 import java.util.Scanner; //load scanner
 public class digitseparator
 {
    public static void main(String[] args)
    {
       Scanner in = new Scanner(System.in);
       int arr[] = new int[5];
       System.out.println("Enter a five-digit integer: ");
       int d =in.nextInt();
       String name = Integer.toString(d);
       System.out.println(name);
       for(int i=0;i<5;i++)
       {
      arr[i] = d%10;
      d = d/10; 
       }
       for(int k=0;k<5;k++)
       {
        System.out.println(arr[k]);
       }
       System.out.println("String method Solution");
       for(int m=0;m<5;m++)
       {
         System.out.println(name.charAt(m));
       }  
     }
   }

希望这是你想要的

于 2013-09-27T18:36:03.877 回答