我是初学者,我想使用for循环和下标输出以下内容,我不确定。
输出:
Jamaica
amaica
maica
aica
ica
ca
a
为了实现此输出,我该怎么办?
答案 0 :(得分:2)
首先:您需要循环生成n
行,这是数组的长度。
第二:您需要打印与row - 1
次数相同的空格。
第二:您需要将字符从row - 1
开始打印到字符串的长度。
最终解决方案将是:
public class MyClass {
public static void printStr(String str) {
int i,j;
for (i = 0; i < str.length();i++) {
for(j = 0; j < i; j++) {
System.out.print(" ");
}
for(j = i; j < str.length();j++) {
System.out.print(str.charAt(j));
}
System.out.println("");
}
}
public static void main(String args[]) {
MyClass.printStr("Jamaica");
}
}
答案 1 :(得分:2)
我会使用两个正则表达式,第一个在String
填充空格时终止循环。第二个用循环体中的空白替换第一个非空格字符(在打印当前String
值之后)。并且,如果String
可能是空的,那么你应该防范它。像,
String s = "Jamaica";
if (!s.isEmpty()) {
while (!s.matches("\\s+")) {
System.out.println(s);
s = s.replaceFirst("\\S", " ");
}
}
输出(根据要求)
Jamaica
amaica
maica
aica
ica
ca
a
答案 2 :(得分:0)
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = scan.next(); //input through scanner class
int len = s.length();
for(int i=0;i<len;i++){
for(int j=0;j<i;j++){
System.out.print(" ");
}
for(int j=i;j<len;j++){
System.out.print(s.charAt(j));
}
System.out.println("");
}
}
希望有帮助
答案 3 :(得分:0)
请尝试以下代码:
StringBuilder country = new StringBuilder("Jamaica");
for(int i=0; i< country.length();i++){
if(i > 0)
{
for(int j=0;j<i;j++){
country.setCharAt(j,' ');
}
}
System.out.println(country);
}