Removing a comma from a string array

I want to execute a query like select ID from "xyz_DB". "test" where the user is in ('a', 'b')

therefore the corresponding code is similar to

String s="(";
for(String user:selUsers){
    s+= " ' " + user + " ', ";
}
s+=")";

Select an ID from the test, where userId is in s;

The following code forms the value of s as ('a', 'b',) I want to remove the comma after the end of the array, how to do it?

+3
source share
10 answers

Here is one way to do this:

String s = "(";
boolean first = true;
for(String user : selUsers){
    if (first) {
        first = false;
    } else {
        s += ", ";
    }
    s += " ' " + user + " '";
}
s += ")";

But it is more efficient to use a StringBuilder to build a String if a loop is involved.

StringBuilder sb = new StringBuilder("(");
boolean first = true;
for(String user : selUsers){
    if (first) {
        first = false;
    } else {
        sb.append(", ");
    }
    sb.append(" ' ").append(user).append(" '");
}
sb.append(")");
String s = sb.toString();
+4
source

This is a trick.

String s = "";
for(String user : selUsers)
    s += ", '" + user + "'";

if (selUsers.size() > 0)
    s = s.substring(2);

s = "(" + s + ")";

But a few pointers:

  • When concatenating such strings, you are advised to work with StringBuilderand append.
  • SQL-, , , . . xkcd: Exploits of a mom.

C:

StringBuilder sb = new StringBuilder("(");
boolean first = true;
for(String user : selUsers){
    if (!first || (first = false))
        sb.append(", ");
    sb.append('\'').append(user).append('\'');
}
sb.append(')');

: -)

for(String user : selUsers)
    sb.append(!first || (first=false) ? ", \'" : "\'").append(user).append('\'');
+3

" " , , , :

    String[] selUsers = {"a", "b", "c"};
    String s="("; 
    for(int i = 0; i < selUsers.length; i++){
        s+= " ' " + selUsers[i] + " ' ";  
        if(i < selUsers.length -1){
            s +=" , ";
        }
    }
    s+=")";

, , StringBuffer :

    String[] selUsers = {"a", "b", "c"};
    StringBuffer s = new StringBuffer("("); 
    for(int i = 0; i < selUsers.length; i++){
        s.append(" ' " + selUsers[i] + " ' ");  
        if(i < selUsers.length -1){
            s.append(" , ");
        }
    }
    s.append(")");
+1
+1

')' , , , - , -

if s.last == ',' then
  s = s.left(s.length() - 1);
end if;

s = s + ')';

if s.last == ',' then
  s.last = ')';
else
  s = s + ')';
end if;

.

+1

s+= " ,'" + user + "'"; ( ) , s = "'" + user + "'";, 1 ( 0, , ).

0

(N.B. - Java, - , ).

selUsers - , :

selUsers.join(',');

, .

EDIT:

, - , Java . , Apache , , . SO: Java: , PHP()?

0

Java 1.4 +

s = s.replaceFirst("\\, \\)$", ")");

:

0

Stephen C answer - , , : .

:

s = s.replace(", \\)", ")");

", )" ")".

0

StringBuilder append(int) .

String [] array = {"1","2","3" ...}; 
StringBuilder builder = new StringBuilder(); 
 builder.append(s + "( ")
for(String i : array) 
{ 
    if(builder.length() != 0) 
        builder.append(","); 
    builder.append(i); 
} 
builder.append(" )")

0

Source: https://habr.com/ru/post/1749154/


All Articles