我是一名java初学者,请记住这一点.我必须创建一个读取数字的程序,然后显示那个感叹号"!".
这就是我所拥有的:
import java.util.Scanner;
import java.io.PrintStream;
class E_HerhaalKarakter1 {
PrintStream out;
E_HerhaalKarakter1 () {
out = new PrintStream(System.out);
}
String printUitroeptekens (int aantal) {
String output = "!"
for (int i = 0; i <= aantal; i++) {
output.concat("!");
}
return output;
}
void start () {
Scanner in = new Scanner(System.in);
out.printf("Hoeveel uitroeptekens wilt u weergeven?\n");
if(in.hasNext()) {
out.printf("baldbla");
printUitroeptekens(in.nextInt());
out.printf("%s",output);
}
}
public static void main (String[] argv) {
new E_HerhaalKarakter1().start();
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Pau*_*ham 22
如果你确实需要创建一个包含X个感叹号的字符串,那么这里有一种方法可以不重复连接:
char[] exmarks = new char[aantal];
Arrays.fill(exmarks, '!');
String exmarksString = new String(exmarks);
Run Code Online (Sandbox Code Playgroud)
您的程序无法工作,因为 String.concat() 不会更改字符串,而是返回一个新字符串。例如,“a”.concat(“b”) 是“ab”。所以,你应该写output = output.concat("!")而不是output.concat("!").
然而,这会非常低效,因为构建一串 n 个感叹号将花费 O(n^2) 时间(在 google 或 wikipedia 上查找“big oh notation”,另请参阅Schlemiel the Painter 的算法)。
查看该类的文档StringBuilder并使用它。它被设计用于用零件构建琴弦。