为什么代码在for循环中不起作用?

时间:2019-10-01 21:30:22

标签: java

家庭作业问题排在最后四个问题上。如果用户输入hello作为字符串,输入3作为整数,则在我尝试输入时应打印“ helheh”

问题:编写一个程序,从用户读取一个字符串和一个整数n。输出一个由字符串的前n个字符组成的字符串,然后是该字符串的前n-1个字符,依此类推。您可能会假设n在0到字符串的长度(包括两端)之间。

我尝试将其添加到子字符串部分的i-1字符串中,但这没用。

 System.out.println("Please input a string: ");
 string = in.next();

 System.out.println("Please input an integer: ");
 n = in.nextInt();

 int lenstring = string.length();

 String tring = string.substring(0,n);
 for(int i = lenstring; i>0; i--)
 {
     con += string.substring(0,n-1);
 }
System.out.println(tring+con);

4 个答案:

答案 0 :(得分:1)

在这里,尝试一下:

for( int i = n;  i > 0;  i-- )
   con += string.substring( 0, i );
System.out.println( con );

我还没有尝试过,但是我认为它应该可以工作。

无论如何,只要您考虑一下,它就能帮助您了解需要做的事情以及为什么需要这种方式而不是其他方式。

答案 1 :(得分:1)

尝试将for语句替换为

for(int i=0; i<n; i++)
{ 
     con += string.substring(0,n-i);
}

答案 2 :(得分:0)

如果要字符串的第一个字符,则substring的第一个参数必须为0。检查。

如果您想要字符串的n,n-1,... 1个字符,则substring的第二个参数必须为n,n-1,... 1.在循环中,显然不是。您的循环应从n到1(或0,但串联一个空字符串没有意义)。

答案 3 :(得分:0)

您可以将n用于循环

    System.out.println("Please input a string: ");
    String string = in.next();

    System.out.println("Please input an integer: ");
    int n = in.nextInt();

    String con = "";
    String tring = string.substring(0,n);
    for(; n>0; n--)
    {
        con += string.substring(0,n-1);
    }
    System.out.println(tring+con);