繁体   English   中英

如何使用 ArrayList 获取 TextField 输入

[英]How can I get TextField input by using ArrayList

我需要测试一种采用输入 TextFild 的方法,如何将输入更改为 ArrayList 以获取数据。 我收到一条错误消息

java.lang.ClassCastException: class java.lang.Character 不能转换为 ZA2Z21ED4F8EBC26CBB1

    private boolean validatePassword() {
            Pattern p = Pattern.compile("((?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,15})");
            Matcher matcher = p.matcher(passwordField.getText());
            if (matcher.matches()) {
                return true;

            } else {
                lblMessage.setText("Please enter a valid password \n" +
                        "(at least one uppercase, lowercase and 8 or more characters ");
                return false;

            }
        }

我的解决方案



    public class TestCases {
        ArrayList<Character> characters = new ArrayList<>();

        public boolean validatePassword() {

            Pattern p = Pattern.compile("((?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,15})");
            for (int i = 0; i < characters.size(); i++) {
                Object j = characters.get(i);
                Matcher matcher = p.matcher((CharSequence) j);
                if (matcher.matches()) {
                    return true;

                } else {
                    System.out.println(
                            "Please enter a valid password \n" +
                            "(at least one uppercase, lowercase and 8 or more characters "););
                    return false;

                }
            }

            return false;
        }

        public void setEmail(ArrayList<Character> list) {
            characters = list;
        }

    }

Junit class


    @Test
    void test() {
        String password= "Kd123456";
        ArrayList<Character> paswordField=new ArrayList<>();
        for(int i= 0 ; i<password.length(); i++){
            paswordField.add(password.charAt(i));
        }

        TestCases valid= new TestCases();
        valid.setEmail(paswordField);
        assertEquals(true,valid.validatePassword());
    }

}

如果希望这会帮助你!

 import static org.junit.Assert.assertEquals;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.junit.Test;

public class TestCases {

    public boolean validatePassword(String s) {

        Pattern p = Pattern.compile("((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-z0-9 ]).{8,15})",
                Pattern.CASE_INSENSITIVE);

        Matcher matcher = p.matcher(s);
        if (matcher.matches()) {
            return true;

        } else {
            System.out.println("Please enter a valid password \n"
                    + "(at least one uppercase, lowercase and 8 or more characters ");
            return false;

        }

    }

    @Test
    public void test() {
        String password = "Kd12@3456";

        TestCases valid = new TestCases();

        assertEquals(true, valid.validatePassword(password));
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM