Java 通过使用字符串的起始字母并用整数连接来获取唯一名称

Java 通过使用字符串的起始字母并用整数连接来获取唯一名称,java,Java,我需要从一个字符串中获取唯一的名称,并在java中与一个整数连接。因此,我希望获取字符串的第一个字母,并用一个整数递增该字母。 示例:租户名称: “ani,raj,rob”我需要得到 架构名称,如a001、r001、r002 这里r值会因为重复而增加。所以我请求你帮我找到答案。我从字符串中得到第一个字母,但我需要将其与整数连接起来 String name = new String(tenantName); char sc=tenantName.charAt(0); String whereC

我需要从一个字符串中获取唯一的名称,并在java中与一个整数连接。因此,我希望获取字符串的第一个字母,并用一个整数递增该字母。 示例:租户名称: “ani,raj,rob”我需要得到 架构名称,如a001、r001、r002 这里r值会因为重复而增加。所以我请求你帮我找到答案。我从字符串中得到第一个字母,但我需要将其与整数连接起来

String name = new String(tenantName); 
char sc=tenantName.charAt(0); 
String whereClause="tenant_id= select max(tenant_id) from tenant_connection_details 
                                        tcd1 where schema_name like'"+sc+"%'"; 
tenantList= tenantImpl.getAllTenantsByWhereClause(whereClause); 

如下所示:

char sc=tenantName.charAt(0); // May use Character.toLowerCase() here, if only lowercase letters are allowed
String whereClause="tenant_id= select max(tenant_id) from tenant_connection_details 
                                    tcd1 where schema_name like'"+sc+"%'"; 
tenantList= tenantImpl.getAllTenantsByWhereClause(whereClause);
int number = tenentList.size() + 1;
String result = Character.toString(sc) + String.format("%04d", number);
List myNames=new ArrayList();
我的姓名。添加(“ani”);
我的姓名。添加(“raj”);
我的姓名。添加(“rob”);
myNames.add(“jigar”);
int计数器=1;
for(字符串str:myNames){
System.out.println(str.charAt(0)+String.format(“%04d”,i));
计数器++;
}

如果我没弄错的话,应该是这样的(不安全、不检查或其他!!):

private List=new ArrayList();
私有void designeCat(字符串名称){
int指数=1;
while(this.list.contains(String.valueOf(name.charAt(0))
+this.getthreDigitIndex(index))){
索引++;
}
this.list.add(String.valueOf(name.charAt(0))+this.getthreDigitIndex(index));
}

您的目标不明确(或者我无法理解)。据我所知,你可以得到第一个字母。您在连接或生成整数方面有问题吗?[CODE]字符串名称=新字符串(tenantName);char sc=tenantName.charAt(0);String whereClause=“tenant\u id=从tenant\u connection\u详细信息tcd1中选择max(tenant\u id),其中模式名称类似于“'+sc+“%”;tenantList=tenantImpl.GetAllTenantsByWhere条款(Where条款);[/CODE]非常感谢你们对回答我的问题表现出兴趣你们的代码是有效的,但它不会增加如果一个名字有相同的起始字母,就像如果我给adam它取a0001,如果我给albert它应该取a0002但它不取,我想,然后将该名称添加到数据库中-因此此代码的下一次迭代将使用tenentList.size()增加了1。是的,它被添加到数据库中,我正在使用pgsql。我在我的服务中使用它。非常感谢您对回答我的问题表现出兴趣非常感谢您对回答我的问题表现出兴趣question@yopirates你的问题终于解决了?如果是这样的话,你可以标出最有帮助的答案,我的价值不会增加。它取a0001代表亚当,也取a0001代表阿尔伯特。它不会递增。你能帮我解决这个字符串名称=新字符串(租户名称);char sc=tenantName.charAt(0);String whereClause=“tenant\u id=从tenant\u connection\u详细信息tcd1中选择max(tenant\u id),其中模式名称类似于“'+sc+“%”;tenantList=tenantImpl.GetAllTenantsByWhere条款(Where条款)@你现在可以考虑了。
List<String> myNames = new ArrayList<String>();
myNames.add("ani");
myNames.add("raj");
myNames.add("rob");
myNames.add("jigar");

int counter=1;
for(String str:myNames){
System.out.println(str.charAt(0)+String.format("%04d", i));
counter++;
}
    private List<String> list = new ArrayList<String>();

    private void strangeConcat(String name){
    int index = 1;

    while(this.list.contains(String.valueOf(name.charAt(0)) 
            + this.getThreeDigitIndex(index))){
        index++;
    }

    this.list.add(String.valueOf(name.charAt(0)) + this.getThreeDigitIndex(index));
}