列表don';t添加日期java

列表don';t添加日期java,java,arraylist,Java,Arraylist,我试图将我的值从一个列表分离到两个不同的列表。我的代码只是验证是否有带字母的数字。我是这样做的: import java.util.Scanner; import java.util.regex.Pattern; import java.util.regex.Matcher; import java.util.List; import java.util.ArrayList; public class Programa { public static void main(String

我试图将我的值从一个列表分离到两个不同的列表。我的代码只是验证是否有带字母的数字。我是这样做的:

import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.List;
import java.util.ArrayList;

public class Programa {

    public static void main(String[] args) {
        Funcionarios valido = new Funcionarios();
        Funcionarios invalido = new Funcionarios();
        Funcionarios aux = new Funcionarios();
        List<String> aux_lista = new ArrayList<>();

        Scanner entrada = new Scanner(System.in);
        String nome, apelido, cpf, nascimento, cep, endereco, numero, cidade, estado, cargo;
        Pattern filtro_letra = Pattern.compile("[^1234567890.-]+[ \\t\\n\\x0B\\f\\r]", Pattern.CASE_INSENSITIVE);
        Pattern filtro_numero = Pattern.compile("-?[\\\\d\\\\.]+", Pattern.CASE_INSENSITIVE);
        Pattern filtro_data = Pattern.compile("[^1234567890/]+[ \\t\\n\\x0B\\f\\r]", Pattern.CASE_INSENSITIVE);
        int[] indices_invalidos = new int[10];
        int[] indices_validos = new int[10];
        int i = 0, j = 1, k = 0, m = 0, n = 0, f = 0;
        String aux_teste;

        while (j == 1 && i <= 10) {
            m = 0;
            n = 0;
            System.out.println("Deseja Adicionar Um Funcionario?\n 1 - Sim \n 2 - Nao\n");
            j = Integer.parseInt(entrada.nextLine());
            if (j == 1) {
                System.out.println("Digite o Nome do Funcionario: ");
                nome = entrada.nextLine();
                aux.nome.add(nome);

                System.out.println("Digite o Apelido: ");
                apelido = entrada.nextLine();
                aux.apelido.add(apelido);

                System.out.println("Digite a Data de Nascimento: ");
                nascimento = entrada.nextLine();
                aux.nascimento.add(nascimento);

                System.out.println("Digite o CPF: ");
                cpf = entrada.nextLine();
                aux.cpf.add(cpf);

                while (aux.EncontrarCPF(cpf)) {
                    System.out.println("CPF ja cadastrado, insira outro CPF:");
                    cpf = entrada.nextLine();
                }
                System.out.println("Digite o CEP: ");
                cep = entrada.nextLine();
                aux.cep.add(cep);

                System.out.println("Digite o Endereco: ");
                endereco = entrada.nextLine();
                aux.endereco.add(endereco);
                System.out.println("Digite o Numero: ");
                numero = entrada.nextLine();
                aux.numero.add(numero);

                System.out.println("Digite a Cidade: ");
                cidade = entrada.nextLine();
                aux.cidade.add(cidade);
                System.out.println("Digite o Estado:");
                estado = entrada.nextLine();
                aux.estado.add(estado);
                System.out.println("Digite o Cargo: ");
                cargo = entrada.nextLine();
                aux.cargo.add(cargo);
            }
            i++;
        }
        i = 0;
        while (i < aux.nome.size()) {
            Matcher somente_letras = filtro_numero.matcher(aux.nome.get(i));
            aux_teste = aux.nome.get(i);
            if (!somente_letras.find()) {
                invalido.nome.add(aux_teste);
                System.out.println(invalido.nome);
            }
            i++;
            aux_teste = "";
        }

//}
        System.out.println("Invalidos");
        System.out.println(invalido.nome);

        System.out.println("Validos");
        System.out.println(valido.nome);
    }
}
import java.util.Scanner;
导入java.util.regex.Pattern;
导入java.util.regex.Matcher;
导入java.util.List;
导入java.util.ArrayList;
公共课程{
公共静态void main(字符串[]args){
Functionarios valido=新Functionarios();
Functionarios invalido=新Functionarios();
Functionarios aux=新Functionarios();
List aux_lista=new ArrayList();
Scanner entrada=新扫描仪(System.in);
字符串nome、apelido、cpf、nascimento、cep、endereco、numero、cidade、estado、cargo;
Pattern filtro_letra=Pattern.compile(“[^1234567890.-]+[\\t\\n\\x0B\\f\\r]”,Pattern.Pattern,不区分大小写);
Pattern filtro\u numero=Pattern.compile(“-?[\\\\d\\\\\.]+”,Pattern.CASE不区分大小写);
Pattern filtro_data=Pattern.compile(“[^1234567890/]+[\\t\\n\\x0B\\f\\r]”,Pattern.不区分大小写);
int[]索引_invalidos=新的int[10];
int[]索引_validos=新的int[10];
int i=0,j=1,k=0,m=0,n=0,f=0;
字符串辅助测试;

虽然(j==1&&i很抱歉,但我确信您的匹配模式工作不正常

如果我将其替换为以下内容:

if(!aux_teste.matches("[a-zA-Z]+$"))
它将所有带有数字的名称放入invalido.nome,确认将字符串放入列表的方法工作正常

编辑:这是一个“最小”的测试用例应该是什么样子-删除所有用户输入的内容并使用简单的数据:

public static void main(String[] args) {
    Funcionarios valido = new Funcionarios();
    Funcionarios invalido = new Funcionarios();
    Funcionarios aux = new Funcionarios();

    Pattern filtro_numero = Pattern.compile("-?[\\\\d\\\\.]+", Pattern.CASE_INSENSITIVE);

    aux.nome.add("Juan");
    aux.nome.add("Ju4n");
    aux.nome.add("Simon");
    aux.nome.add("S1mon");

    String aux_teste;
    int i = 0;
    while (i < aux.nome.size()) {
        Matcher somente_letras = filtro_numero.matcher(aux.nome.get(i));
        aux_teste = aux.nome.get(i);
        //if (!somente_letras.find()) {
        if(aux_teste.matches("[a-zA-Z]+$")){
            valido.nome.add(aux_teste);
        }
        else{
            invalido.nome.add(aux_teste);
        }
        i++;
    }

    System.out.println("Invalidos");
    System.out.println(invalido.nome);

    System.out.println("Validos");
    System.out.println(valido.nome);
}
publicstaticvoidmain(字符串[]args){
Functionarios valido=新Functionarios();
Functionarios invalido=新Functionarios();
Functionarios aux=新Functionarios();
Pattern filtro\u numero=Pattern.compile(“-?[\\\\d\\\\\.]+”,Pattern.CASE不区分大小写);
附加名称添加(“胡安”);
补充名称(“Ju4n”);
附加名称添加(“西蒙”);
附加名称增补(“第一个月”);
字符串辅助测试;
int i=0;
而(i

输入和输出两种不同的if条件,查看您的模式是否工作。

无效。nome在哪里声明?是什么?我认为您没有发布足够的代码来复制this@doctorlove-我发了it@doctorlove-invalido只是我的类,它包含我的变量类型“列表”你能发布Functionarios类的代码吗?谢谢,请看你能不能发布。这对我们会有很大帮助。
public static void main(String[] args) {
    Funcionarios valido = new Funcionarios();
    Funcionarios invalido = new Funcionarios();
    Funcionarios aux = new Funcionarios();

    Pattern filtro_numero = Pattern.compile("-?[\\\\d\\\\.]+", Pattern.CASE_INSENSITIVE);

    aux.nome.add("Juan");
    aux.nome.add("Ju4n");
    aux.nome.add("Simon");
    aux.nome.add("S1mon");

    String aux_teste;
    int i = 0;
    while (i < aux.nome.size()) {
        Matcher somente_letras = filtro_numero.matcher(aux.nome.get(i));
        aux_teste = aux.nome.get(i);
        //if (!somente_letras.find()) {
        if(aux_teste.matches("[a-zA-Z]+$")){
            valido.nome.add(aux_teste);
        }
        else{
            invalido.nome.add(aux_teste);
        }
        i++;
    }

    System.out.println("Invalidos");
    System.out.println(invalido.nome);

    System.out.println("Validos");
    System.out.println(valido.nome);
}