好的,所以我有这个非常简单,非常低效的程序,但是没关系,我唯一想知道的是如何在不改变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);
}
}
答案 0 :(得分:0)
这里有几个问题让我们不确切地知道你要做什么。首先,您读入多个int值(ssn1,ssn2 ... ssn9),然后将它们添加到队列中。然后调用Integer.toString(ssn)。 。 。我希望那条线上有错误。看起来你想要做的就是使用循环从队列中读取值,每次都将它们分配给一个临时的String变量,然后调用临时变量的substring函数并打印出结果。就像现在一样,你正在调用整个队列中的Integer.toString(ssn),我认为它不会做你想要的。队列仍然键入Integer(队列)。更不用说toString方法返回一个值,您应该将其读入另一个变量或在您调用它时使用。像这样在它自己的行上调用它并没有真正实现任何东西,因为即使它返回了一些值,它也不会被你的代码保留以供以后使用。