Java 如何使用JButton删除textField中字符的所有实例?
我无法使用JButton从文本字段中删除不需要的字符。 到目前为止,我已经尝试过使用for循环进行按钮调用,以遍历字符并将所有字母实例替换为0。然而,按钮实际上并没有做任何事情。任何帮助都将不胜感激,以下是我的代码:Java 如何使用JButton删除textField中字符的所有实例?,java,string,jbutton,textfield,Java,String,Jbutton,Textfield,我无法使用JButton从文本字段中删除不需要的字符。 到目前为止,我已经尝试过使用for循环进行按钮调用,以遍历字符并将所有字母实例替换为0。然而,按钮实际上并没有做任何事情。任何帮助都将不胜感激,以下是我的代码: if(event.getSource() == call) { int length = search.getText().length(); for(int i = 0; i < length; i++) {
if(event.getSource() == call)
{
int length = search.getText().length();
for(int i = 0; i < length; i++)
{
char a;
a = search.getText().charAt(i);
if(!(a >= '0' && a <= '9') || !(a == '#') || !(a == '*')
{
search.getText().replace(Character.toString(a), "");
}
}
}
if(event.getSource()==调用)
{
int length=search.getText().length();
for(int i=0;i 如果(!(a>='0'&&a此行search.getText().replace(Character.toString(a),“”);
应该是这样的
search.setText(search.getText().replace(Character.toString(a), ""));
您可以这样做,而不是为每次迭代更改和更新字符
String searchStr= search.getText();
for(int i = 0; i < searchStr.length(); i++)
{
char a;
a = searchStr.charAt(i);
if(!(a >= '0' && a <= '9') || !(a == '#') || !(a == '*')
{
searchStr = searchStr.replace(Character.toString(a), "");
}
}
search.setText(searchStr);
stringsearchstr=search.getText();
对于(int i=0;i 如果(!(a>='0'&&a此行search.getText().replace(Character.toString(a),“”);
应该是这样的
search.setText(search.getText().replace(Character.toString(a), ""));
您可以这样做,而不是为每次迭代更改和更新字符
String searchStr= search.getText();
for(int i = 0; i < searchStr.length(); i++)
{
char a;
a = searchStr.charAt(i);
if(!(a >= '0' && a <= '9') || !(a == '#') || !(a == '*')
{
searchStr = searchStr.replace(Character.toString(a), "");
}
}
search.setText(searchStr);
stringsearchstr=search.getText();
对于(int i=0;i 如果(!(a>='0'&&a在使用replace
方法时,它将返回字符串
/**
* Replaces each substring of this string that matches the literal target
* sequence with the specified literal replacement sequence. The
* replacement proceeds from the beginning of the string to the end, for
* example, replacing "aa" with "b" in the string "aaa" will result in
* "ba" rather than "ab".
*
* @param target The sequence of char values to be replaced
* @param replacement The replacement sequence of char values
* @return The resulting string
* @throws NullPointerException if <code>target</code> or
* <code>replacement</code> is <code>null</code>.
* @since 1.5
*/
public String replace(CharSequence target, CharSequence replacement) {
return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(
this).replaceAll(Matcher.quoteReplacement(replacement.toString()));
}
因此,使用“替换”时,应按以下方式使用:
` searchStr = searchStr.replace(Character.toString(a), ""); `
而不是searchStr.replace(Character.toString(a),”;
以便可以替换该值
如果以前使用的代码searchStr.replace(Character.toString(a),“”);
String-value-searchStr,则不会更改
此外,还可以使用正则表达式删除意外的字符。
像
当使用replace
方法时,它将返回字符串
/**
* Replaces each substring of this string that matches the literal target
* sequence with the specified literal replacement sequence. The
* replacement proceeds from the beginning of the string to the end, for
* example, replacing "aa" with "b" in the string "aaa" will result in
* "ba" rather than "ab".
*
* @param target The sequence of char values to be replaced
* @param replacement The replacement sequence of char values
* @return The resulting string
* @throws NullPointerException if <code>target</code> or
* <code>replacement</code> is <code>null</code>.
* @since 1.5
*/
public String replace(CharSequence target, CharSequence replacement) {
return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(
this).replaceAll(Matcher.quoteReplacement(replacement.toString()));
}
因此,使用“替换”时,应按以下方式使用:
` searchStr = searchStr.replace(Character.toString(a), ""); `
而不是searchStr.replace(Character.toString(a),”;
以便可以替换该值
如果以前使用的代码searchStr.replace(Character.toString(a),“”);
String-value-searchStr,则不会更改
此外,还可以使用正则表达式删除意外的字符。
像
非常感谢!它正在工作,但不是按照我希望的方式工作,我只需要调整我在if上的逻辑。再次感谢!@friabb如果这回答了你的问题,那么请将其标记为正确答案。非常感谢!它正在工作,但不是按照我希望的方式工作,我只需要调整我在I上的逻辑f、 再次感谢!@friabb如果这回答了您的问题,那么请将其标记为正确答案。也非常感谢!这比逐个检查每个字符更能理清逻辑。我对正则表达式了解不多,您能解释一下什么“^[0-9*#]”正在做什么?我猜它的意思是除去由“[]”分隔的内容之外的所有内容?[^0-9*#]当插入符号显示为方括号内的第一个字符时,它将否定该模式。这可以匹配除0到9或*或#以外的任何字符。您可以从以下URL轻松获得regrex基本知识。好的,非常感谢,这是一个信息丰富的链接。非常感谢!这比逐个检查每个字符更能理清逻辑。我对正则表达式了解不多,你能解释一下“^[0-9*#]]在做什么吗?我猜它是说除去“[]”分隔的字符之外的所有字符吗?[^0-9*#]当插入符号显示为方括号内的第一个字符时,它将否定模式。这可以匹配除0到9或*或#以外的任何字符。您可以从以下URL轻松获得regrex基本知识。好的,非常感谢,这是一个非常有用的链接。要更快获得更好的帮助,请访问pos为了更快地获得更好的帮助,请发布一个。