在Java的String类型中除去所有的"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+=-[]}{;:'\\\"\\\\|~`,./<>?"
时间: 2023-07-21 21:04:46 浏览: 152
您可以使用正则表达式来删除Java字符串中的所有非字母数字和特殊字符。以下是一个示例代码:
```java
String str = "Hello!@#$%^&*()_ World123";
String filteredStr = str.replaceAll("[^a-zA-Z0-9]", "");
System.out.println(filteredStr);
```
输出结果为:HelloWorld123
在这个例子中,我们使用了`replaceAll()`方法,并传入了一个正则表达式`[^a-zA-Z0-9]`作为要替换的模式。这个模式表示除了字母和数字以外的所有字符。我们将所有匹配到的字符替换为空字符串,从而删除了所有非字母数字和特殊字符。
请注意,这只是一个简单的示例,如果您有更复杂的需求,需要根据具体情况调整正则表达式。
相关问题
用Java(8) 随机生成一一个指定长度及参数要求的验证码。参数有:是否包含数字、是否包含小写字母、是否包含大写字母、是否允许验证码有重复字符出现。 *随机生成--个指定长度及参数要求的验证码* @param len验证码长度 * @param isDigit 是否包含数字 * @param isl owerCase是否包含小写字母* @param isUpperCase是否包含大写字母* @param isRepeat是否允许验证码有重复字符出现 * @return验证码 public static String getCode(int len,booleanisDigit,boolean isL owerCase,boolean isUpperCase,boolean isRepeat)
好的,以下是用Java(8)随机生成指定长度及参数要求的验证码的代码:
```
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class VerificationCodeGenerator {
private static final String DIGITS = "0123456789";
private static final String LOWER_CASE_LETTERS = "abcdefghijklmnopqrstuvwxyz";
private static final String UPPER_CASE_LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static String getCode(int len, boolean isDigit, boolean isLowerCase, boolean isUpperCase, boolean isRepeat) {
if (!isDigit && !isLowerCase && !isUpperCase) {
throw new IllegalArgumentException("At least one of isDigit, isLowerCase and isUpperCase must be true");
}
if (len <= 0) {
throw new IllegalArgumentException("len must be greater than 0");
}
Random random = new Random();
List<Character> chars = new ArrayList<>();
if (isDigit) {
for (int i = 0; i < DIGITS.length(); i++) {
chars.add(DIGITS.charAt(i));
}
}
if (isLowerCase) {
for (int i = 0; i < LOWER_CASE_LETTERS.length(); i++) {
chars.add(LOWER_CASE_LETTERS.charAt(i));
}
}
if (isUpperCase) {
for (int i = 0; i < UPPER_CASE_LETTERS.length(); i++) {
chars.add(UPPER_CASE_LETTERS.charAt(i));
}
}
if (!isRepeat && chars.size() < len) {
throw new IllegalArgumentException("Not enough characters to generate a unique code");
}
StringBuilder codeBuilder = new StringBuilder(len);
for (int i = 0; i < len; i++) {
int index = random.nextInt(chars.size());
codeBuilder.append(chars.get(index));
if (!isRepeat) {
chars.remove(index);
}
}
return codeBuilder.toString();
}
}
```
调用方式示例:
```
String code = VerificationCodeGenerator.getCode(6, true, true, true, false);
System.out.println(code);
```
该示例调用方法生成一个长度为6的验证码,它包含数字、小写字母和大写字母,但不允许有重复字符出现。
编写一个 java 程序,在当前文件夹下新建一个文件 RandomFile . txt ,向该文件中写入" abcdefghijklmnopqrstuvwxyz ",提示用户从键盘输入一个0~25之间的整数,根据用户输入的整数,从文件中读取相应的字符并显示。
以下是实现上述功能的 Java 代码:
```java
import java.io.*;
public class RandomFile {
public static void main(String[] args) {
try {
// 创建文件并写入数据
File file = new File("RandomFile.txt");
FileWriter writer = new FileWriter(file);
writer.write("abcdefghijklmnopqrstuvwxyz");
writer.close();
// 从键盘读取整数
System.out.println("请输入0~25之间的整数:");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int index = Integer.parseInt(reader.readLine());
// 从文件中读取相应的字符并显示
FileReader fileReader = new FileReader(file);
char[] buffer = new char[26];
fileReader.read(buffer);
System.out.println("文件中第" + (index + 1) + "个字符为:" + buffer[index]);
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
代码中通过 `FileWriter` 将数据写入文件,通过 `BufferedReader` 从键盘读取用户输入,通过 `FileReader` 从文件中读取数据并根据用户输入的整数显示相应的字符。
阅读全文