从字符串Java中排除特殊字符
我对Java非常陌生,我正在为学校编写一个加密、解密工具,我想问一下我如何才能做到这一点 排除特殊字符,我已经尝试过像“contains”这样的方法,但我并没有真正起作用。我的代码如下所示:从字符串Java中排除特殊字符,java,special-characters,Java,Special Characters,我对Java非常陌生,我正在为学校编写一个加密、解密工具,我想问一下我如何才能做到这一点 排除特殊字符,我已经尝试过像“contains”这样的方法,但我并没有真正起作用。我的代码如下所示: public void bEncode\u ActionPerformed(ActionEvent evt){ 字符串输入=jTextField1.getText(); 字符串输出=”; 字符串Specialcharacters=“!§$%&/()=?,-+*:;”; jTextField2.setTex
public void bEncode\u ActionPerformed(ActionEvent evt){
字符串输入=jTextField1.getText();
字符串输出=”;
字符串Specialcharacters=“!§$%&/()=?,-+*:;”;
jTextField2.setText(“编码…”);
字符c;
int Number=(整数)jSpinner1Model.getNumber();
int asc;
对于(int i=0;i90)asc=asc-26;
输出=输出+(字符)asc;
}否则{
}
}
jTextField2.setText(输出);
}
有什么方法可以让它工作吗?使用正则表达式。例如,下一行将只从给定字符串中获取字母和数字
String onlyLettersAndNumbers = s.replaceAll("[^0-9A-Za-z]", "");
如果只需要保留字母和数字,可以使用正则表达式简化代码,如下所示:
public void bEncode_ActionPerformed(ActionEvent evt) {
String input = jTextField1.getText();
jTextField2.setText("Encoding...");
int Number = (Integer) jSpinner1Model.getNumber();
jTextField2.setText(input.replaceAll("[\\W^_]", ""));
}
快速演示:
public class Main {
public static void main(String[] args) {
String regex = "[\\W^_]";
System.out.println("Hello123".replaceAll(regex, ""));
System.out.println("Hello .123".replaceAll(regex, ""));
System.out.println("Hello&*@123".replaceAll(regex, ""));
System.out.println("Hello!§$%&/()=?.,-_+*:; @123".replaceAll(regex, ""));
}
}
Hello123
Hello123
Hello123
Hello123
输出:
public class Main {
public static void main(String[] args) {
String regex = "[\\W^_]";
System.out.println("Hello123".replaceAll(regex, ""));
System.out.println("Hello .123".replaceAll(regex, ""));
System.out.println("Hello&*@123".replaceAll(regex, ""));
System.out.println("Hello!§$%&/()=?.,-_+*:; @123".replaceAll(regex, ""));
}
}
Hello123
Hello123
Hello123
Hello123
在旁注上,您应该始终遵循,例如,
Input
应命名为Input
欢迎使用stackoveflow。参观并获取您需要使用正则表达式的第一个徽章。。包含(字符串)
将检查整个子字符串!§$%&/()=?,-\u+*
在输入中,而不是它的每个单独字符中。if(!input.contains(Specialcharacters){应该是if(!input.contains(Specialcharacters)){但除此之外,“Specialcharacters”是一个字符串,一个字符序列。它不仅仅是一个字符。因此,您确实在尝试检查您的文本是否包含您编写的整个序列“!§$%&/()=?,-\+*:;”。