Java 如何从字符串数组中拆分与字符组合的数字?(如c1)
我有一个表:'Categories',它有两个字段:Category\u ID和Category。类别ID字段中的数据类似于“c1”、“c2”。如果有10行,则从c1到c10。在该表中插入新记录时,如何设置类别ID(如c11或c12)?如果没有删除任何记录,则可以根据行数轻松设置。但用户可以删除记录。我试图从表中检索Category_ID,将其存储在vector中,然后设置一个字符串变量,该变量存储由“;”分隔的所有Category_ID我想从Category_ID中分离c和相关数字,以便在insert查询中使用下一个数字Java 如何从字符串数组中拆分与字符组合的数字?(如c1),java,sql,arrays,string,auto-increment,Java,Sql,Arrays,String,Auto Increment,我有一个表:'Categories',它有两个字段:Category\u ID和Category。类别ID字段中的数据类似于“c1”、“c2”。如果有10行,则从c1到c10。在该表中插入新记录时,如何设置类别ID(如c11或c12)?如果没有删除任何记录,则可以根据行数轻松设置。但用户可以删除记录。我试图从表中检索Category_ID,将其存储在vector中,然后设置一个字符串变量,该变量存储由“;”分隔的所有Category_ID我想从Category_ID中分离c和相关数字,以便在in
Statement st;
ResultSet rsCatID;
String query="";
String querySelect="";//used to get last category_id number,so that next value will be applied in insert query.
Vector vCatID=new Vector();
String strCatID="";
String[] arrCatID;
然后在连接后的试接块线路中
querySelect="select Category_ID from Categories";
rsCatID=st.executeQuery(querySelect);
while(rsCatID.next()){
vCatID.add(rsCatID.getString("Category_ID").toString());
}
for(int i=0;i<vCatID.size();i++){
strCatID+=vCatID.get(i).toString()+";";
}
System.out.println("strcatidcount=="+strCatID);
arrCatID=strCatID.split(";");
for(int i=0;i<arrCatID.length;i++){
System.out.println("arrCatID=="+arrCatID[i]);
}
querySelect=“从类别中选择类别\u ID”;
rsCatID=st.executeQuery(查询选择);
while(rsCatID.next()){
添加(rsCatID.getString(“Category_ID”).toString();
}
对于(int i=0;i
或者:
SELECT MAX(cint(MID(Category_ID,2))) FROM Categories;
这将返回最高的intnum
或者:
SELECT MAX(cint(MID(Category_ID,2))) FROM Categories;
这将使最高整数返回这太复杂了!只需使用自动递增字段。为什么类别字段必须以字母c开头?为什么不能是整数?如果需要在应用程序中以“c”开头显示,则只要从数据库中读取值,就可以修改这些值e、 但是在数据库中将它们作为整数保存。这样会更有效,并允许您避免重新发明轮子。这太复杂了!只需使用自动递增字段。为什么类别字段必须以字母c开头?为什么不能是整数?如果您需要在应用程序中以“c”开头显示它除此之外,只要从数据库中读取值,您就可以修改这些值,但将它们作为整数保存在数据库中。这将更有效,并允许您避免重新发明轮子。非常感谢。但我使用的是Microfot Access,所以强制转换函数不起作用。我使用了CINT function,现在它可以工作了。它在MS Access中工作ql视图。但在编译java文件时出错。[Microsoft][ODBC Microsoft Access Driver]表达式中未定义的函数“REPLACE”这非常奇怪,但如果您知道第一个字符始终是要删除的字符,则可以使用以下函数:SELECT MAX(cint(MID(类别_ID,2)))从Categories;我甚至尝试在ms access和带有替换功能的粘贴查询中创建一个新查询,在java文件中,我使用了“select*FROM query1”,但它仍然给出相同的错误。这里有人能帮我吗?你是否尝试过我提供的替代方法,看起来jet引擎甚至不支持替换功能ugh access?非常感谢。但我使用的是MicrosoftAccess,所以强制转换函数不起作用。我使用了CINT函数,现在它可以工作了。它在MS access的sql视图中工作。但在编译java文件时给我一个错误。[Microsoft][ODBC Microsoft access驱动程序]表达式中未定义的函数“REPLACE”非常奇怪,但如果知道第一个字符始终是要删除的字符,则可以使用以下函数:SELECT MAX(cint(MID(Category_ID,2)))从Categories;我甚至尝试在ms access和带有替换功能的粘贴查询中创建一个新查询,在java文件中,我使用了“select*FROM query1”,但它仍然给出相同的错误。这里有人能帮我吗?你是否尝试过我提供的替代方法,看起来jet引擎甚至不支持替换功能ugh access?谢谢。是的,第一选择总是使用自动增量字段。但是由于某些要求,我不能使用它。谢谢。是的,第一选择总是使用自动增量字段。但是由于某些要求,我不能使用它。