Java 打印特定内容(如果是';这是印刷的第一件、第二件和最后一件东西

Java 打印特定内容(如果是';这是印刷的第一件、第二件和最后一件东西,java,arrays,Java,Arrays,我如何编写代码,以便在打印两个东西时,它们之间有一个“and”,如果是打印的元素,则有一个“and”,如下所示: “1张100美元钞票和2张200美元钞票”“1张100美元钞票、2张200美元钞票和4张10美元钞票” 公共级卡萨{ 公共静态void main(字符串[]args){ //TODO自动生成的方法存根 扫描仪输入=新扫描仪(System.in); 扫描仪输入=新扫描仪(System.in); Scanner betalsumma=新扫描仪(System.in); int-belop

我如何编写代码,以便在打印两个东西时,它们之间有一个“and”,如果是打印的元素,则有一个“and”,如下所示: “1张100美元钞票和2张200美元钞票”“1张100美元钞票、2张200美元钞票和4张10美元钞票”


公共级卡萨{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
扫描仪输入=新扫描仪(System.in);
扫描仪输入=新扫描仪(System.in);
Scanner betalsumma=新扫描仪(System.in);
int-belopp,rest,summa,pris,v=0,antalsedlar=0,antalvarv=0;
字符串tu=“tusenlapp”,fh=“femmundralapp”,th=“tvahundralapp”,eh=“enhundralapp”,
ft=“femtiolapp”,tj=“tjugolapp”,ti=“tiokronors mynt”,f=“femkronorsmynt”,t=“tvakronorsmynt”,
et=“enkronorsmynt”;
字符串pengar[]={tu,fh,th,eh,ft,tj,ti,f,t,et};
int sedlar[]={1000、500、200、100、50、20、10、5、2、1};
System.out.println(“我的朋友是谁?”);
belopp=pengarinput.nextInt();
System.out.println(“Hur mycket kostar varan?”);
pris=prisinput.nextInt();
rest=belopp-pris;
while(rest>0){
如果(rest>=sedlar[v]){
对于(int i=0;i=20){
系统输出打印(antalsedlar+“st”+pengar[v]+“ar”+“,”);
}
否则{
系统输出打印(antalsedlar+“st”+pengar[v]+“+”,”;
}
}
}
}
}
否则{
antalsedlar=0;
v++;
}
}
如果(pris>belopp){
System.out.println(“Du har inte råd!”);
}
}
}

使用StringBuilder和基本条件。在下面,我们连接一个字符串数组,但您可以将其推广到任何可以生成字符串的类型

public String concat(String[] values) {
  if (null == values) return "null";
  if (values.length == 0) return "";
  StringBuilder sb = new StringBuilder(values[0].trim());
  for (int index = 1 ; index < values.length ; ++index) {
    String op = index < (values.length - 1) ? ", " : " and ";
    sb.append(op).append(values[index].trim());
  }
  return sb.toString();
}
公共字符串concat(字符串[]值){
if(null==值)返回“null”;
如果(values.length==0)返回“”;
StringBuilder sb=新的StringBuilder(值[0].trim());
对于(int index=1;index
使用StringBuilder和基本条件。在下面,我们连接一个字符串数组,但您可以将其推广到任何可以生成字符串的类型

public String concat(String[] values) {
  if (null == values) return "null";
  if (values.length == 0) return "";
  StringBuilder sb = new StringBuilder(values[0].trim());
  for (int index = 1 ; index < values.length ; ++index) {
    String op = index < (values.length - 1) ? ", " : " and ";
    sb.append(op).append(values[index].trim());
  }
  return sb.toString();
}
公共字符串concat(字符串[]值){
if(null==值)返回“null”;
如果(values.length==0)返回“”;
StringBuilder sb=新的StringBuilder(值[0].trim());
对于(int index=1;index
无论您的代码如何难以阅读和破译,我都为您提供了两种撰写此类句子的方法。假设存在初始数组,例如:

String[] array = {"1100 USD", "2200USD", "3300 USD", "4400 USD"};
现在,解决方案要求
数组中至少有一项:

  • 使用
    StringBuilder
    进行循环
    迭代:

    StringBuilder sb = new StringBuilder();          // initialize StringBuilder
    if (array.length == 1) {                         // special case of one element
        sb.append(array[0]);
    } else {                                         // or 2+ elements
        for (int i = 0; i < array.length - 1; i++) { // iterate all of them except the last one
            sb.append(array[i]);                     // ... always append an item
            if (i < array.length - 2) {              // ... if is not the last one, append ','
                sb.append(", ");
            } else {                                 // ... else append 'and' delimiter
                sb.append(" and ");
            }
        }
        sb.append(array[array.length - 1]);          // finally append the remaining item
    }
    String sentence = sb.toString();                 // composed sentence from StringBuilder
    
    这可以打包成更紧凑、更可读的内容:

    StringBuilder sb = new StringBuilder(); 
    if (array.length == 1) {
        sb.append(array[0]);
    } else {
        String initialSentence = String.join(", ", Arrays.copyOfRange(array, 0, array.length - 1));
        sb.append(initialSentence).append(" and ").append(array[array.length - 1]);
    }
    String sentence = sb.toString();  
    

  • 不管你的代码很难阅读和破译,我提供两种方法来组成这样的句子。假设存在初始数组,例如:

    String[] array = {"1100 USD", "2200USD", "3300 USD", "4400 USD"};
    
    现在,解决方案要求
    数组中至少有一项:

  • 使用
    StringBuilder
    进行循环
    迭代:

    StringBuilder sb = new StringBuilder();          // initialize StringBuilder
    if (array.length == 1) {                         // special case of one element
        sb.append(array[0]);
    } else {                                         // or 2+ elements
        for (int i = 0; i < array.length - 1; i++) { // iterate all of them except the last one
            sb.append(array[i]);                     // ... always append an item
            if (i < array.length - 2) {              // ... if is not the last one, append ','
                sb.append(", ");
            } else {                                 // ... else append 'and' delimiter
                sb.append(" and ");
            }
        }
        sb.append(array[array.length - 1]);          // finally append the remaining item
    }
    String sentence = sb.toString();                 // composed sentence from StringBuilder
    
    这可以打包成更紧凑、更可读的内容:

    StringBuilder sb = new StringBuilder(); 
    if (array.length == 1) {
        sb.append(array[0]);
    } else {
        String initialSentence = String.join(", ", Arrays.copyOfRange(array, 0, array.length - 1));
        sb.append(initialSentence).append(" and ").append(array[array.length - 1]);
    }
    String sentence = sb.toString();  
    

  • 请注意,不需要使用三个
    扫描仪。您可以在同一个实例上多次调用
    nextInt()
    ;类名称应该用PascalCase编写。注意,不需要使用三个
    Scanner
    s。您可以在同一个实例上多次调用
    nextInt()
    ;类名应该用PascalCase写。