编写一个程序,该程序接受用户输入的字符串,然后输出第一个字符,然后输出前两个字符,然后输出前三个字符,依此类推,直到输出整个单词。降到一个字母后,将相反的字母打印回完整的单词。
我已经完成了第一部分。
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
答案 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()