[英]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.