Java 在循环中打印数字时,如何删除最后一个逗号?
所以我做这个是为了在我选择的两个数字之间打印素数;然而,它在最后一个数字后打印出一个逗号,我不知道如何去掉它。 实例 在:0 10 输出:2,3,5,7, 我要2,3,5,7Java 在循环中打印数字时,如何删除最后一个逗号?,java,Java,所以我做这个是为了在我选择的两个数字之间打印素数;然而,它在最后一个数字后打印出一个逗号,我不知道如何去掉它。 实例 在: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++){
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);}
}
}
使用布尔值跟踪是否已打印任何内容。那么您的格式字符串可以是
anythingPrinted ? ",%d" : "%d"
也就是说,只有在有打印内容的情况下才在格式字符串中包含逗号。这似乎有些过分,在很多情况下可能是这样,但我一直在编写源代码转码器,我发现这种情况经常出现。其中,值之间需要逗号,或者只打印一次的前缀值。所以我发现创建一个简化事情的类很方便 同样,如果代码中有一个或两个打印循环,您可能不想使用它,但如果您有多个打印循环,则可能不想使用它。若你们永远不会使用它,也许你们会在第一部分删除它
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);
}
使用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);
我在测试,我想出了这个。我使用的是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));
}
}
本程序用于求一个数的因子
for(i=1;i<=number;i++)
{
if(number%i==0)
{
system.out.print(i);
if(i!=0)
{system.out.print(",");}
}
}
所以我得到了10的输出
1,2,5,10删除最后一个逗号的唯一方法是不首先打印它。在当前索引上设置逗号打印条件。@dasblinkenlight不起作用。你不知道你什么时候在打印最后一个逗号的迭代中。
for(i=1;i<=number;i++)
{
if(number%i==0)
{
system.out.print(i);
if(i!=0)
{system.out.print(",");}
}
}