【问题标题】:Deleting Last Character From a String in JavaJava中删除字符串的最后一个字符
【发布时间】:2020-12-30 14:53:19
【问题描述】:

我正在编写一个 java 代码,当在 PasswordField 中输入超过 10 个字符时会出错,并且无法从那里输入。我尝试在 KeyPressed 事件中从 PasswordField 中删除最后一个字符,但不是删除最后一个字符,而是删除它之前的字符并将其替换为最后一个字符。这是我的代码。

private void passFieldKeyTyped(java.awt.event.KeyEvent evt) {

String pw1 = new String(passField.getPassword());
    
    if(passField.getPassword().length==10){

        try{

          StringBuffer bf = new StringBuffer(pw1);
           bf.deleteCharAt(10);
          String pw2 = new String(bf);    
           passField.setText(pw2);
                             
          JOptionPane.showMessageDialog(this, "<html><h4>Password Must Not Contain More Than 10 Characters !</h4></html>", "Error !", JOptionPane.ERROR_MESSAGE);

           }

        catch(Exception e){
            
           JOptionPane.showMessageDialog(this, e.getMessage());
        }

    }

我还是个编程新手。我希望有人可以帮助我。谢谢!

【问题讨论】:

标签: java string char jpasswordfield


【解决方案1】:
public class RemoveChar {  
    public static void main(String[] args) {  
              String str = "India is my country";  
              System.out.println(charRemoveAt(str,));  
           }  
           public static String charRemoveAt(String str) {  
              return str.substring(0, str.length()-1);  
           }  
}  

【讨论】:

  • 很抱歉,Linga Lgm Cse 的代码确实输出与我的完全相同的输出.. ;'(
【解决方案2】:

我猜你正试图从字符串中删除一个字符。

您可以在此处使用 StringBuilder 类删除指定位置的字符。首先将您的字符串转换为 StringBuilder -

StringBuilder sb = new StringBuilder(inputString);

然后您可以使用内置方法deleteCharAt() 像这样删除所需位置的字符 -

sb.deleteCharAt(10);

希望这对你有帮助。

【讨论】:

    【解决方案3】:

    伙计们,我很抱歉我发现这是我的错误..我实际上不得不再次检查密码字段的长度,长度必须为 11 才能删除第 10 个字符。这是代码。它工作..感谢帮助大家!!!!!!!!!

    private void passFieldKeyTyped(java.awt.event.KeyEvent evt) {

    String pw1 = new String(passField.getPassword());
        
        if(passField.getPassword().length==11){
    
            try{
    
              StringBuffer bf = new StringBuffer(pw1);
               bf.deleteCharAt(10);
              String pw2 = new String(bf);    
               passField.setText(pw2);
                                 
              JOptionPane.showMessageDialog(this, "<html><h4>Password Must Not Contain More Than 10 Characters !</h4></html>", "Error !", JOptionPane.ERROR_MESSAGE);
    
               }
    
            catch(Exception e){
                
               JOptionPane.showMessageDialog(this, e.getMessage());
            }
    
        }
    

    【讨论】:

      猜你喜欢
      • 2011-12-15
      • 2017-08-19
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多