簡體   English   中英

將循環結果另存為字符串

[英]Save for loop result as string

    String input[] = request.getParameterValues("checkbox");

        for(int i=0;i<input.length;i++) {
            if (i==input.length-1) {
                System.out.print(input[i]+" ");
            } else {
                    System.out.print(input[i]+", ");
            }
        }

結果是我打印到控制台,例如“ CustomerId,FirstName,LastName,Phone”。 我想將for循環的結果另存為字符串變量,所以我可以

     String query = "select "+result above+" from table";

怎么做?

您繼續追加到StringBuilder ,然后將其轉換為String

StringBuilder sb = new StringBuilder();
for(int i=0;i<input.length;i++) {
  if (i==input.length-1) {
     System.out.print(input[i]+" ");
     sb = sb.concat(input[i] + ",");
  } else {
     System.out.print(input[i]+", ");
     sb = sb.concat(input[i] + ",");
  }
}

然后,

String query = "select "+sb.toString()+" from table";

使用StringBuilder將字符串連接在一起。 (從技術上講,可以使用String對象,並使用+運算符將它們連接在一起,但這有很多缺點...)

    String input[] = request.getParameterValues("checkbox");

    StringBuilder sb = new StringBuilder(); // create empty StringBuilder instance
    for(int i=0;i<input.length;i++) {
        sb.append(input[i]);     //append element
        if (i==input.length-1) {
            sb.append(" ");      //append space
        } else {
            sb.append(", ");     //append comma
        }
    }

    String result = sb.toString();
    Systemout.println(result);

或者,您可以使用StringBuilder對象構建( 請參閱Builder模式 )整個查詢,並使用每個部分的方法( addFields(StringBuilder sb)addFromPart(StringBuilder sb)addWhereClause(StringBuilder sb) )和瞧,您可以了解一個小的數據訪問框架

public abstract class MyQueryBuilder {

    protected abstract void addFields(StringBuilder sb);
    protected abstract void addFromPart(StringBuilder sb);
    protected abstract void addWhereClause(StringBuilder sb);

    public final String getQuery() {
        StringBuilder sb = new StringBuilder();
        sb.append("SELECT ");

        addFields(sb); //this adds the fields to be selected
        sb.append(" FROM ");

        addFromPart(sb); //this adds the tables in the FROM clause

        addWhereClause(sb); //this adds the where clause
        //...etc
        return sb.toString();
    }
}

您可以使用StringBuilder來執行此操作,而不是打印出值。

String input[] = request.getParameterValues("checkbox");

    StringBuilder builder = new StringBuilder();

    for(int i=0;i<input.length;i++) {
        if (i==input.length-1) {
            builder.append(input[i]+" ");
        } else {
                builder.append(input[i]+", ");
        }
    }

問候,凱茲

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM