java中n长度的字符串

时间:2016-01-19 15:58:01

标签: java string

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本身。

4 个答案:

答案 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