我环顾四周,没有发现任何我真正理解或可以做的事情,我希望有一个简单的解决方案。我必须在这个程序的每一行之后的第 20 个字符槽中添加一个
*
这是我的代码:
package StarBorder;
import java.util.Scanner;
public class NewTry {
public static void main(String[] args) {
System.out.println("Please input a word: ");
Scanner stringScanner = new Scanner(System.in);
String input = stringScanner.nextLine();
int numberOfCharacters = 20;
System.out.println("**********************");
for (int i = 0; i < input.length(); i += numberOfCharacters) {
String part = input.substring(i, Math.min(input.length(), i + numberOfCharacters));
System.out.println("*" + part + "*");
}
System.out.println("**********************");
}
}
这是打印出来的内容:
**********************
*Hello I am doing som*
*e code, hello ther p*
*eople on stack overf*
*low* // I need this to be over where the other *'s are.
**********************
我需要它是一个满是星星的正方形。感谢您的回答。
我也希望它不是在第 20 个字符处截断,而是在之前的空格处截断。然而,这是次要问题。
System.out.printf("*%-20s*%n", part);
这将打印
part
格式化,左对齐(-
),paddel 到 20。%n
换行符。
一个简单的方法是简单地打印出一堆空格来填充空白(填充字符串)。 例如,对于输入的最后一行你可以做
System.out.print("*" + part);
for(int i=0; i < numberOfCharacters - 2 - part.length(); i++){
System.out.print(" ");
}
System.out.println("*");
这段代码所做的只是找到部分长度与理想子串长度之间的差异,然后打印出那么多空格。