如何以降序循环字符串?

时间:2019-03-23 02:34:42

标签: java string loops

编写一个程序,该程序接受用户输入的字符串,然后输出第一个字符,然后输出前两个字符,然后输出前三个字符,依此类推,直到输出整个单词。降到一个字母后,将相反的字母打印回完整的单词。

我已经完成了第一部分。

   Scanner word = new Scanner(System.in);
   System.out.println("Enter a word.");
   String thing = word.next();
   String rest = "";
      for(int i=0;i< thing.length();i++){
           String w = thing.substring(i,i+1);
           rest += w;
           System.out.println(rest);
       }   

这是它的外观。

C
Co
Com 
Comp 
Compu 
Comput 
Compute 
Computer 
Computer
Compute 
Comput 
Compu 
Comp
Com 
Co
C

2 个答案:

答案 0 :(得分:1)

Java中的字符串从0开始索引,因此最后一个字符在nw:turtles-on-path-to处索引。

要从最后一个字符向下迭代到第一个字符,for循环应为length-1

或者,考虑到您已经获得了应该反向打印的字符串,递归将是一个更简单的解决方案。

for(int i = thing.length () - 1; i >= 0; i--)

现在可以通过static void f (String str, int n) { if (n > str.length ()) return; String temp = str.substring (0, n); // obtain the string System.out.println (temp); // print f (str, n + 1); // go to next substring System.out.println (temp); // print after returning from the last obtainable substring }

调用该函数

答案 1 :(得分:0)

您可以尝试实现两个数组,第一个必须拆分从Scanner输入的字符串,第二个必须在第一个数组的每次迭代中存储生成的aux变量,要完成操作,必须迭代第二个数组相反。

email = str(raw_input("Input Email List -> "))
list = open(email, "r")
mailist = list.readline().replace("\n","")
for line in mailist:
    line = line.strip('')
    email, password = line.split()