我在从字符串数组中获取唯一字母和数字时遇到问题,然后返回它们。我有格式化问题。
给定的输入是:([abc, 123, efg])
并且应该返回abcefg123
,
但是,我的回复:abc123efg
我如何解决此问题,因为arrays.sort()
最终会将数字放在首位而不是最后?
到目前为止,这是我的方法:
public static String getUniqueCharsAndDigits(String[] arr) {
String str = String.join(",", arr);
String myString = "";
myString = str.replaceAll("[^a-zA-Z0-9]", "");
for(int i = 0; i < str.length(); i++) {
if(Character.isLetterOrDigit((i))){
if(myString.indexOf(str.charAt(i)) == -1) {
myString = myString + str.charAt(i);
}
}
}
return myString;
}
答案 0 :(得分:0)
你要做的是创建两个字符串,一个带字母,一个带数字。
public static String getUniqueCharsAndDigits(String[] arr) {
String str = String.join("", arr);
String myLetters, myDigits;
myLetters = myDigits = "";
for(int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if(Character.isLetter(c)){
if(myLetters.indexOf(c) == -1) {
myLetters += c;
}
} else if(Character.isDigit(c)){
if(myDigits.indexOf(c) == -1) {
myDigits += c;
}
}
}
//if they need to be sorted, sort each one individually here
return myLetters + myDigits;
}
我修改了您的代码并删除了不必要的部分。