Java 正在将字符串[]转换为逗号分隔的字符串。

Java 正在将字符串[]转换为逗号分隔的字符串。,java,parsing,long-integer,Java,Parsing,Long Integer,我有一个字符串数组,我需要将它解析为长变量 字符串数组包含[“9”、“8”]等值。 我想将其转换为“(9,8)”(我在SQL语句的“in”子句中使用它) 实现这一目标的好方法是什么 这是我的密码: String[] statusIdArray; long statsId = Long.parseLong("("); statsId = Long.parseLong(statusIdArray[0]); for(int i=1; i < len; i++) { statsId =

我有一个字符串数组,我需要将它解析为长变量

字符串数组包含[“9”、“8”]等值。 我想将其转换为“(9,8)”(我在SQL语句的“in”子句中使用它)

实现这一目标的好方法是什么

这是我的密码:

String[] statusIdArray;
long statsId = Long.parseLong("(");
statsId = Long.parseLong(statusIdArray[0]);
  for(int i=1; i < len; i++) {
    statsId = Long.parseLong(statsId + ",") statsId=Long.parseLong(statsId + statusIdArray[i]);
    statsId = Long.parseLong(statsId + ")");
  }
String[]状态数组;
long statsId=long.parseLong(“”);
statsId=Long.parseLong(statusIdArray[0]);
对于(int i=1;i
但是我在输入字符串(9“

中得到了一个NumberFormatException
”,你们通过“将这个字符串数组解析为长(9,8)”来做什么

你有一个字符串数组吗?还是只有一个字符串?你想把每个数字(用逗号分隔)输入一个长数组吗?还是想把(9,8)变成一个长“98”?

通过“把这个字符串数组解析成(9,8)的长度”,你会怎么做

您有一个字符串数组吗?还是只有一个字符串?您希望将每个数字(用逗号分隔)输入一个长数组?还是希望(9,8)成为一个长“98”?

//数字是您的数组
字符串result=“IN(”;
对于(int i=0;i
我想我现在明白了

你必须小心数组的内容,你可能是SQL注入攻击的受害者。

//数字是你的数组
字符串result=“IN(”;
对于(int i=0;i
我想我现在明白了


您必须小心数组的内容,您可能是SQL注入攻击的受害者。

问题有点不清楚,但可能是

long[] result = new long[ strings.length ];
for (int i=0; i<result.length; i++){
    result[i] = Long.parseLong( strings[i] );
}

我通常也完全反对将变量直接插入SQL(您应该使用绑定变量),但对于列表中的变量长度来说,这有点棘手。只需确保您不会在该字符串数组中获得奇怪的数据。

这个问题有点不清楚,但可能

long[] result = new long[ strings.length ];
for (int i=0; i<result.length; i++){
    result[i] = Long.parseLong( strings[i] );
}

我通常也完全反对将变量直接插入SQL(应该使用绑定变量),但对于列表中的可变长度而言,这有点棘手。请确保在该字符串数组中不会获得奇怪的数据。

假设问题是:我有一个字符串数组,我想将其转换为SQL表示法,因此我可以在SQL查询中使用这些字符串:

import java.util.Arrays; // may need to add this import somewhere among your import statements

/**
 * Convert Java String[] to SQL array with varargs syntax.
 * Example method invocations:<blockquote><pre>
 * String sql1 = toSQLArray("1","2","3"); // should return "(1,2,3)"
 * String sql2 = toSQLArray(new String[] { "0", "5" }); // should return "(0,5)"
 * </pre></blockquote>
 * @param array string array.
 * @return String created by concatenating each array element using "," as separator and 
 * adding "(" and ")" as delimiters for the result. 
 */
public String toSQLArray(String... array) {
  StringBuilder sb= new StringBuilder(Arrays.toString(array));
  sb.replace(0,1, "(");
  int l = sb.length();
  sb.replace(l-1, l, ")");
  return sb.toString();
}
import java.util.Arrays;//可能需要在import语句中的某个位置添加此导入
/**
*使用varargs语法将Java字符串[]转换为SQL数组。
*方法调用示例:
*字符串sql1=toSQLArray(“1”、“2”、“3”);//应返回“(1,2,3)”
*字符串sql2=toSQLArray(新字符串[]{“0”,“5”});//应返回“(0,5)”
* 
*@param数组字符串数组。
*@通过使用“,”作为分隔符和
*添加“(“and”)作为结果的分隔符。
*/
公共字符串toSQLArray(字符串…数组){
StringBuilder sb=新的StringBuilder(Arrays.toString(array));
sb.替换(0,1,“(”);
int l=sb.length();
sb.替换(l-1,l,“)”;
使某人返回字符串();
}

假设问题是:我有一个字符串数组,我想将其转换为SQL表示法,因此我可以在SQL查询中使用这些字符串:

import java.util.Arrays; // may need to add this import somewhere among your import statements

/**
 * Convert Java String[] to SQL array with varargs syntax.
 * Example method invocations:<blockquote><pre>
 * String sql1 = toSQLArray("1","2","3"); // should return "(1,2,3)"
 * String sql2 = toSQLArray(new String[] { "0", "5" }); // should return "(0,5)"
 * </pre></blockquote>
 * @param array string array.
 * @return String created by concatenating each array element using "," as separator and 
 * adding "(" and ")" as delimiters for the result. 
 */
public String toSQLArray(String... array) {
  StringBuilder sb= new StringBuilder(Arrays.toString(array));
  sb.replace(0,1, "(");
  int l = sb.length();
  sb.replace(l-1, l, ")");
  return sb.toString();
}
import java.util.Arrays;//可能需要在import语句中的某个位置添加此导入
/**
*使用varargs语法将Java字符串[]转换为SQL数组。
*方法调用示例:
*字符串sql1=toSQLArray(“1”、“2”、“3”);//应返回“(1,2,3)”
*字符串sql2=toSQLArray(新字符串[]{“0”,“5”});//应返回“(0,5)”
* 
*@param数组字符串数组。
*@通过使用“,”作为分隔符和
*添加“(“and”)作为结果的分隔符。
*/
公共字符串toSQLArray(字符串…数组){
StringBuilder sb=新的StringBuilder(Arrays.toString(array));
sb.替换(0,1,“(”);
int l=sb.length();
sb.替换(l-1,l,“)”;
使某人返回字符串();
}

我有一个由数字组成的字符串数组。例如(9 8)我必须将此字符串数组作为长变量传递给sql的“IN”子句。传递长时应该像(9,8)可能如果您计划连接字符串,“string”类型不是最佳选择,因为它是不可变的。请使用“StringBuilder”相反,@Alexandr:我知道新版本的Java编译器会自动对其进行优化,以避免串接字符串的性能下降,即串接会自动转换为StringBuilder操作(我甚至不记得为什么了,也许我错了)我没听说过。也许你是对的。我会试着调查:)我做了一个快速搜索。看起来我错了,我误解的那种优化指的是c=“a”+“b”;在这种情况下,编译器将优化为c=“ab”;在我看来,这不仅可能是我的建议(误解),而且这将是一件有意义的好事。在我看来,这是一个非常严格的翻译。无论如何,似乎每个人都建议在循环中附加字符串时使用StringBuilder。我忽略了它,考虑的是编译器优化似乎不存在。我有一个由数字组成的字符串数组。例如(9 8),我必须将此字符串数组作为一个长变量传递给sql的“IN”子句。传递长时应该像(9,8)可能如果您计划连接字符串,“string”类型不是最佳选择,因为它是不可变的。改为使用“StringBuilder”。@Alexandr:我知道新版本的Java编译器会自动对其进行优化,以避免串接字符串的性能下降,即串接会自动转换为Stri