Java 建议,写社会保障代码
我是java和我的班级的新手,我们需要编写一个程序,其中用户以XXXXXXXXX的形式输入社会保障代码,然后以XXXX-XX-XXX的形式返回。 例如,如果代码是123456789,它将作为123-45-6789返回给他们 这是我所拥有的,我想使用子字符串来完成它 导入java.util.ScannerJava 建议,写社会保障代码,java,substring,reformat,Java,Substring,Reformat,我是java和我的班级的新手,我们需要编写一个程序,其中用户以XXXXXXXXX的形式输入社会保障代码,然后以XXXX-XX-XXX的形式返回。 例如,如果代码是123456789,它将作为123-45-6789返回给他们 这是我所拥有的,我想使用子字符串来完成它 导入java.util.Scanner public class HWSocialSecuritySh { public static void main (String [] args) { Scanner reader
public class HWSocialSecuritySh {
public static void main (String [] args) {
Scanner reader = new Scanner (System.in);
String name;
int ssn;
System.out.print ("Enter nine digit social security number without dashes: ");
ssn= reader.nextInt();
System.out.print("Your formatted social security number is: ");
System.out.println(snn.substring(,) );
}
}
public class HWSocialSecuritySH {
public static void main (String [] args) {
Scanner reader = new Scanner (System.in);
String name;
String Ssn="ssn";
System.out.print ("Enter nine digit social security number without dashes: ");
Ssn= reader.nextLine();
System.out.print("Your formatted social security number is: ");
System.out.println (Snn.substring(0,3) +"-"snn.substring(4,6) + "-"snn.substring(7,9);
}
}
这是新代码
导入java.util.Scanner
public class HWSocialSecuritySh {
public static void main (String [] args) {
Scanner reader = new Scanner (System.in);
String name;
int ssn;
System.out.print ("Enter nine digit social security number without dashes: ");
ssn= reader.nextInt();
System.out.print("Your formatted social security number is: ");
System.out.println(snn.substring(,) );
}
}
public class HWSocialSecuritySH {
public static void main (String [] args) {
Scanner reader = new Scanner (System.in);
String name;
String Ssn="ssn";
System.out.print ("Enter nine digit social security number without dashes: ");
Ssn= reader.nextLine();
System.out.print("Your formatted social security number is: ");
System.out.println (Snn.substring(0,3) +"-"snn.substring(4,6) + "-"snn.substring(7,9);
}
}
实际上,更合适的方法是使用a和a表示a,其中包含社会保险号码的子组,如下所示: 如前所述,社会保障号码虽然可以表示为整数,但实际上是一串数字:它作为一个数字是毫无意义的。因此,您应该将其存储为
字符串
,而不是int
现在,在您的新代码中,您几乎做到了这一点,但仍然存在一些问题:
- 它是
,而不是String
String
- 既然
是一个字符串,就不能将它分配给ssn
的结果,因为它返回一个reader.nextInt()
。相反,您需要使用int
reader.nextLine()
- 第二个和第三个
调用的范围稍有偏离。请参阅该方法的substring()
charAt()
方法,那么这个问题的其余部分就无关紧要了。@Kon ya我知道,那么您如何准确地更正它,请以真实的代码形式写出它,而不仅仅是解释它。谢谢您的帮助,但我只想使用字符串,因为我们还没有学会如何使用匹配器。所以你能用字符串来写吗。谢谢:)@ShadonHamedani使用substring()
非常简单——您在哪部分遇到问题?只需使用适当的索引进行3次单独的子字符串调用,并将结果与中间的“-”
s连接起来。我也很新,这一切对我来说太简单了,我该如何将破折号添加到子字符串中?@ShadonHamedani在使用子字符串()
提取组后,您可以使用group1+'-'+group2+'-'+group3
substring1+“-”+substring2