这是我的问题。 我有一个JTextField,用户在其中输入一个String。 在动作控制器中,我正在检查写入的String是否对应于对象中包含的另一个String。 我想使JTextField案例对空格不敏感。 我将非常感谢你的帮助。
将帖子 使用字符串上的replaceAll(“\ s +”,“”)更容易解决它; 谢谢大家的及时。 各种问候。
答案 0 :(得分:1)
st.replaceAll("\\s+","")
删除所有空格和不可见字符,例如制表符和换行符。您可以在从JTextField
获得的字符串上使用此字符。这是Regex。
编辑:string.trim()
方法不是您想要的,因为它会修剪字符串开头和结尾的空白,而不是删除所有空格。< / p>
编辑2 :如果您想比较字符串,请使用string.equals(str2)
例如,如果您有一个名为st = "AAA 111"
的牌照字符串而另一个名为st2 = "AAA111'
的牌照,只需删除像st.replaceAll("\\s+","")
和st2.replaceAll("\\s+","")
这样的空格,然后您就可以检查如果他们等于st.equals(st2)
。
答案 1 :(得分:0)
也许您可以使用FormattedTextField (docs)
JFormattedTextField textField = new JFormattedTextField(this.createFormatter("UUU-###")); // 3 any character uppercase and 3 any valid number
public MaskFormatter createFormatter(String s) {
MaskFormatter formatter = null;
try {
formatter = new MaskFormatter(s);
} catch (java.text.ParseException exc) {
System.err.println("formatter is bad: " + exc.getMessage());
System.exit(-1);
}
return formatter;
}
答案 2 :(得分:0)
如果您希望JTextField忽略用户实时键入的空格,您可以尝试下面的代码。此解决方案将覆盖JTextField的keyTyped事件的操作。
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.event.*;
public class CustomListenerTextField {
public static void main(String args[]){
JFrame frame = new JFrame("Frame Canvas");
frame.setSize(500, 500);
JTextField field = new JTextField();
field.addKeyListener(new KeyListener(){
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
if (Character.isWhitespace(e.getKeyChar()) || Character.isSpaceChar(e.getKeyChar())){
e.consume();
}
}
@Override
public void keyPressed(KeyEvent e){
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
});
frame.add(field);
frame.setVisible(true);
}
}
答案 3 :(得分:0)
private void GuessButtonActionPerformed(java.awt.event.ActionEvent evt) {
//This is the action event of the button.
if (GuessTextField.getText().equalsIgnoreCase("what"))
//Ignores the case of the specified TextField.
{
JOptionPane.showMessageDialog(null, "You're Laaaaaame");
}
else
{
JOptionPane.showMessageDialog(null, "Guess Again");
}
}