所以我这样做是为了在我选择的两个数字之间打印素数;但是,它在最后一个数字后打印出一个逗号,我不知道如何取消它。 例 in:0 10 出:2,3,5,7, 我想要2,3,5,7
Scanner s = new Scanner(System.in);
int a = s.nextInt();
int b = s.nextInt();
for (int i = a; i <= b; i++){
int j;
for (j = 2; j<i; j++){
int p = i%j;
if(p==0){break;}
}
if(i == j){System.out.printf("%d,", i);}
}
}
答案 0 :(得分:1)
使用boolean
跟踪您是否已打印任何内容。然后您的格式字符串可能类似于
anythingPrinted ? ",%d" : "%d"
也就是说,如果打印了某些内容,则只在格式字符串中包含逗号。
答案 1 :(得分:0)
这可能看起来有点矫枉过正,而且在很多情况下可能是这样,但我一直在编写一个源代码转码器,我发现这种情况很多。我需要在值之间使用逗号,或者只打印一次的前缀值。所以我发现创建一个简化事物的类很方便。
同样,如果你的代码中有一个或两个打印循环,你可能不想使用它,但也许如果你有多个。如果您永远不会使用它,也许您会在“第一”部分删除。
public class FirstPrintOptions {
private PrintStream printStream;
private String onFirst;
private String remaining;
private boolean trip = false;
public FirstPrintOptions(PrintStream printStream, String onFirst, String remaining) {
this.printStream = printStream;
this.onFirst = onFirst;
this.remaining = remaining;
}
public void print() {
if (!trip) {
if (onFirst != null) {
printStream.print(onFirst);
}
trip = true;
} else {
if (remaining != null) {
printStream.print(remaining);
}
}
}
}
然后像这样使用..
FirstPrintOptions firstPrintOptions = new FirstPrintOptions(System.out, null, ",");
for (int x=0;x<10;x++) {
firstPrintOptions.print();
System.out.print(x);
}
结果是..
0,1,2,3,4,5,6,7,8,9
答案 2 :(得分:0)
使用StringBuilder
并在程序结束时写入控制台。
StringBuilder sb = new StringBuilder();
for (int i = a; i <= b; i++){
int j;
for (j = 2; j<i; j++){
int p = i%j;
if(p==0){break;}
}
if(i == j){
// If the length of the StringBuilder is 0, no need for a comma
if(sb.length() != 0) {
sb.append(",");
}
sb.append(i);
}
}
System.out.println(sb);
答案 3 :(得分:0)
我正在测试,我想出了这个。我使用的是compilejava.net,因此扫描仪不起作用。我绕过那个部分,只需手动设置a和b。基本上,它使用数字构建一个字符串,并以逗号结尾。然后它打印一个子字符串,包括除最后一个逗号之外的所有内容。
import java.util.*;
public class HelloWorld {
public static void main(String[] args) {
//Scanner s = new Scanner(System.in);
int a = 2;
int b = 18;
String c = "Output = ";
for (int i = a; i <= b; i++){
int j;
for (j = 2; j<i; j++){
int p = i%j;
if(p==0){break;}
}
if(i == j){c=c+ Integer.toString(i) + ",";}
}
System.out.print(c.subSequence(0, c.length()-1));
}
}
答案 4 :(得分:0)
该程序用于查找数字因子
function two() {//this function takes 2 seconds
return new Promise(resolve => {
setTimeout(() => {
resolve('resolved');
}, 2000);
});
}
function one(){
console.log("one");
}
async function asyncCall() {
console.log('calling');
const result = await two();
one()
// expected output: 'resolved'
}
asyncCall();
所以我得到10的输出 1,2,5,10