字符串包含数字大小写字母,大小写切换,输出新的字符串列表比如a1D2输出[a1D2、A1d2、a1d2、A1D2],使用java实现
时间: 2024-05-11 15:19:59 浏览: 36
可以使用递归的方法实现,每次递归处理一个字符,如果是英文字母,则分别处理其大小写两种情况,并将结果合并;如果是数字,则直接将其加入结果列表中。
Java代码实现如下:
```java
import java.util.ArrayList;
import java.util.List;
public class StringPermutation {
public static List<String> permute(String s) {
List<String> res = new ArrayList<>();
if (s == null || s.length() == 0) {
return res;
}
permuteHelper(s.toCharArray(), 0, res);
return res;
}
private static void permuteHelper(char[] arr, int index, List<String> res) {
if (index == arr.length) {
res.add(new String(arr));
return;
}
char c = arr[index];
if (Character.isLetter(c)) {
arr[index] = Character.toLowerCase(c);
permuteHelper(arr, index + 1, res);
arr[index] = Character.toUpperCase(c);
permuteHelper(arr, index + 1, res);
arr[index] = c;
} else {
permuteHelper(arr, index + 1, res);
}
}
public static void main(String[] args) {
String s = "a1D2";
List<String> res = permute(s);
System.out.println(res);
}
}
```
输出为`[a1D2, a1d2, A1D2, A1d2]`。
阅读全文