示例输入字符串:
BlueJ的
输出:
b***b *l*l* **u** *e*e* j***j
(其中' *'表示空格)
到目前为止,我做了这么多:
int n = s.length() - 1;
int i, j;
for (i = 0; i <= n; i++) {
for (j = 0; j <= (n + 1); j++) {
if (i == j || i == n - (j - 1))
System.out.print(s.charAt(i));
else {
System.out.print("*");
}
}
System.out.println();
}
但输出是:
b****b *l**l* **uu** **ee** *j**j*
答案 0 :(得分:2)
第二次循环终止条件应为j<=n
如果条件应为(i == j || i == n - j)
在检查所涉及变量的值时,在调试器中测试代码可能会让您自己解决。
答案 1 :(得分:2)
只需将i == n-(j-1)
替换为i == n - j
,将第二个for (j = 0; j <= n+1; j++)
替换为for (j = 0; j <= n; j++)
:
int n = s.length() - 1;
int i, j;
for (i = 0; i <= n; i++) {
for (j = 0; j <= n; j++) {
if (i == j || i == n - j)
System.out.print(s.charAt(i));
else {
System.out.print("*");
}
}
System.out.println();
}
答案 2 :(得分:2)
第1步:查看字符数。您显示6个字符,而预期输出显示5个字符。您需要更改内部的结尾,如下所示:
for(j=0;j<=(n);j++)
第2步:您希望将n+1
作为j
的最后一个索引,但它已更改为n
。你需要申请它:
if(i== j || i == n-(j))
示例:
答案 3 :(得分:1)
工作原理:
String s = "bluej";
int n = s.length() - 1;
int i, j;
for (i = 0; i <= n; i++) {
for (j = 0; j <= (n); j++) {
if (i == j || i == n - (j))
System.out.print(s.charAt(i));
else {
System.out.print("*");
}
}
System.out.println();
}
}