0

好的,所以我有这个非常简单、非常低效的程序,但是没关系,我唯一想知道的是如何在不更改 ssn1 到 ssn5 的值的情况下将队列的前五个数字打印为零。

例如,我想打印 000001111,而不是 111111111,但仍将这些值存储在队列中。有人可以帮我吗?我只是想隐藏它们。

我正在尝试将队列的整数转换为字符串,创建一个子字符串,然后打印 dummyint 五次,然后打印子字符串。

import java.util.*;

public class SSNQueue {
public static void main (String args[]) {

  Scanner scan = new Scanner(System.in);
  Queue<Integer> ssn = new LinkedList<Integer>();

  int Dummyssn = 0;

  System.out.println("Please enter each digit number of SSN");

  System.out.print("Enter digit number 1: ");
  int ssn1 = scan.nextInt();
  System.out.print("Enter digit number 2: ");
  int ssn2 = scan.nextInt();
  System.out.print("Enter digit number 3: ");
  int ssn3 = scan.nextInt();
  System.out.print("Enter digit number 4: ");
  int ssn4 = scan.nextInt();
  System.out.print("Enter digit number 5: ");
  int ssn5 = scan.nextInt();
  System.out.print("Enter digit number 6: ");
  int ssn6 = scan.nextInt();
  System.out.print("Enter digit number 7: ");
  int ssn7 = scan.nextInt();
  System.out.print("Enter digit number 8: ");
  int ssn8 = scan.nextInt();
  System.out.print("Enter digit number 9: ");
  int ssn9 = scan.nextInt();

  ssn.add(ssn1);
  ssn.add(ssn2);
  ssn.add(ssn3);
  ssn.add(ssn4);
  ssn.add(ssn5);
  ssn.add(ssn6);
  ssn.add(ssn7);
  ssn.add(ssn8);
  ssn.add(ssn9);

  Integer.toString(ssn);
  String Subssn = ssn.substring(5);

  System.out.println("The SSN is:" + ssn);
  System.out.println("The last four digits of the SSN are:" + Dummyssn + Dummyssn + Dummyssn + Dummyssn + Dummyssn + Subssn);
   }
}
4

1 回答 1

0

这里有几个问题使您不清楚您要做什么。一方面,您读取多个 int 值(ssn1、ssn2...ssn9),然后将它们添加到队列中。然后调用 Integer.toString(ssn) 。. . 我希望那条线上有一个错误。似乎您想要做的是使用循环从队列中读取值,每次将它们分配给临时字符串变量,然后在临时变量上调用子字符串函数并打印出结果。就像现在一样,您正在调用整个队列中的 Integer.toString(ssn) ,我认为这不会满足您的要求。队列仍然键入整数(队列)。更不用说 toString 方法返回一个值,您应该在调用它时将其读入另一个变量或使用它。

于 2013-04-25T14:57:53.587 回答