4 回答
TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以在添加之前檢查您的列表,如下所示:
public void addWithSuffix(String email) {
if(list.contains(email)) {
int number = 0;
String[] tmp = email.split("@");
for(; list.contains(tmp[0] + number + "@" + tmp[1]); number++){}
list.add((tmp[0] + number + "@" + tmp[1]));
}
else {
list.add(email);
}
}
但是,當(dāng)然,在嘗試添加之前驗(yàn)證您的輸入以確保電子郵件有效。而且我還建議將 a 換成ListaSet
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
創(chuàng)建自定義添加方法并使用拆分值并檢查直到達(dá)到最大值,
import java.util.ArrayList;
import java.util.List;
public class CustomListAdd {
public static void main(String[] args) {
List <String> list=new ArrayList<String>();
add("jony@test.com",list);
add("jony@test.com",list);
add("jony@test.com",list);
add("jony@test.com",list);
System.out.println(list);
}
public static void add(String value,List<String> list) {
if(list.contains(value)) {
int count = 1;
String[] strSplited = value.split("@");
while(list.contains(strSplited[0] + count + "@" + strSplited[1]))
count++;
list.add((strSplited[0] + count + "@" + strSplited[1]));
}
else {
list.add(value);
}
}
}
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
嘗試這個(gè)
主班
List <String> list=new ArrayList<String>();
list.add("jony@test.com");
list.add("jony1@test.com");
list.add("jony2@test.com");
list.add("jony3@test.com");
list.add("gerd@test.com");
String newEmail = "jony@test.com";
String last = "";
for (String string : list) {
if(compareString(newEmail , string)){
last = string;
}
}
int newNumber = Integer.valueOf(last.substring(last.indexOf("@")-1, last.indexOf("@")))+1;
String[] s = newEmail.split("@");
list.add(s[0]+ newNumber + s[1]);
System.out.println(list);
替換數(shù)字后比較字符串
private static boolean compareString(String string, String string2) {
string2 = string2.replaceAll("\\d","");
return string.equals(string2);
}
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
嘗試這個(gè):
import java.io.*;
import java.util.*;
public class DynamicMail{
private Map<String, Integer> map = new HashMap<>();
private List<String> emails = new ArrayList<>();
public static void main(String args[]){
DynamicMail dm = new DynamicMail();
dm.addToList("jony@test.com");
dm.addToList("gary@test.com");
dm.addToList("jony@test.com");
dm.addToList("jony@test.com");
dm.addToList("jony@test.com");
dm.addToList("gary@test.com");
dm.addToList("ghost@test.com");
System.out.println(dm.getEmails());
}
public Map<String, Integer> getMap(){
return map;
}
public List<String> getEmails(){
return emails;
}
public void addToList(String email){
String[] parts = email.split("@");
Integer i = map.computeIfAbsent(parts[0], x->new Integer(0));
if(i!=0)
emails.add(parts[0]+i+"@"+parts[1]);
else
emails.add(email);
map.put(parts[0], ++i);
}
}
假設(shè)您從一個(gè)空列表開始,并且 jony1@test.com 或 gerd2@test.com 之類的電子郵件不會(huì)作為輸入,這將起作用。
添加回答
舉報(bào)
