对齐输出,输出的每个字加上空格一共八个

问题遇到的现象和发生背景

对齐输出

问题相关代码,请勿粘贴截图

img

import java.util.*;

public class 对齐输出 {
    public static void main(String[] args) {
        /**/
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        String[] ss = s.split(" ");//以空格分开
        for (int i = 0; i < 3; i++) {
            String str = ss[i];
            if (str.length() < 8) {
                int x=str.length();
                for (int j = 0; j <=8 - str.length(); j++) {
                    str = " " + str;
                }
            }
            System.out.print(str+" ");
        }
        System.out.println(" ");
  }
}
运行结果及报错内容

结果一直是错的,但是这里有正确的代码,一直想不懂为什么这么做
正确代码:

Scanner sc = new Scanner(System.in);
        String next = sc.nextLine();
        String[] split = next.split(" ");
        for (int i = 0; i < 3; i++) {
            String str = split[i];
            if (str.length() < 8) {
                String str1 = str;
                for (int j = 0; j < 8 - str.length(); j++) {
                    str1 = " " + str1;
                }
                str = str1;
            }
            System.out.print(str + " ");
        }

你写的代码str一直在更新,str.length()不断在变长