public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
String s="";
for(int i=0;i<N;i++){
s=sc.nextLine();
}
例如:N = 10 S = aabbbabbab
如何输入n长度的字符串? 我试图获取一个必须长度为N的输入字符串。 我知道上面的逻辑是错的,但我仍然感到困惑? PS:第一行输入包含一个整数N - 字符串的长度。 第二行包含初始字符串S本身。
答案 0 :(得分:4)
检查输入字符串是否大于maximumlength
。
if (s.length() > maximumLength) { // do something
你可以做的是使用子字符串来修剪输入。
fixedInput = s.substring(0, maximumLength - 1);
好的,当您首先阅读该号码时,您必须使用第一个输入初始化maximumLength
。
作为替代方案,您可以询问用户,直到输入符合输入的长度:
do {
s = sc.nextLine();
if (s.length() != maximumLength)
System.out.println("The input did not fit the size");
} while (s.length() != maximumLength);
答案 1 :(得分:1)
使用此:
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); // N == 5 e.g
sc.nextLine(); // Consume the leftover '\n'
String s = sc.nextLine(); // Hello World
s = s.substring(0, N);
System.out.println(s); // Hello
答案 2 :(得分:1)
我建议使用if
检查输入字符串,如果它与您要查找的长度不匹配,则返回用户再次输入。
示例:
if(s.length() != n) {
//Take another input
}
您可以循环执行上述操作,直到满足此条件(可能是while
循环)。
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String s="";
do{
s = sc.nextLine();
}while(s.length() != n);
}
答案 3 :(得分:1)
在上面的代码中,您所做的只是阅读n
个字符串,并将s
设置为最后一个(如果没有&{39; t {{也会抛出异常1}}输入流中的字符串)。您需要做的是读取字符串并补偿任何长度错误。
n