Java初学者求助:如何用for循环实现指定字符串截短输出效果
解决Java字符串逐次截首输出的问题
嘿,我来帮你搞定这个需求!你想要实现的是输入一个单词,然后依次输出去掉首字母的子串,直到只剩最后一个字符对吧?
先看看你现有代码的小问题:你写的循环从wordEntered.length()开始,到i>=0结束,这里会导致输出空字符串,而且循环逻辑刚好搞反了方向。
修正后的完整代码
import java.util.Scanner; public class javapdf2413_17 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Enter in a single word"); String wordEntered = in.next(); // 从索引0开始,逐次截取从当前索引到末尾的子串 for (int i = 0; i < wordEntered.length(); i++) { System.out.print(wordEntered.substring(i) + " "); } } }
关键逻辑解释
substring(i)方法会返回从索引i开始到字符串末尾的子串:当i=0时就是原单词,i=1时去掉第一个字符,以此类推- 循环从
i=0到i < wordEntered.length(),刚好覆盖所有非空的目标子串(比如输入"Canada"时,i从0到5,对应6个符合要求的子串) - 用
System.out.print代替println,能让所有结果在同一行用空格分隔;如果想每个子串单独换行,换成println即可
内容的提问来源于stack exchange,提问作者coding anonymous
相关产品推荐
相关产品推荐

