Problema com if

Pessoal criei a seguinte estrutura pra login onde a lógica deve pegar apenas numeros menores q 10 e ele proprio, mas se o usuario digitar mais de um numero da um erro até ai td bem… só não to entendendo pq ele não passa no segundo if…

Eu transformei a string em int para declarar q apenas numeros menores q 10 são validos… oq devo fazer

ContatoForm contato= (ContatoForm)form;
    

	String nome = contato.getNome();
	String senha = contato.getSenha();
    
	
	 Pattern p = Pattern.compile("[0-9]{2}");

	 Matcher m = p.matcher(senha);
	 
	  
	 
	 if(m.matches()){
		 int senhaNum = Integer.parseInt("senha");
//->    	 if(senhaNum <= 10)
	      System.out.println("senha válida");
		 return map.findForward("sucesso");
	 }else {
		 
		 System.out.println("Senha invalida");
		 return map.findForward("erro");
	 }

ele da o seguinte erro

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: For input string: “senha”

aguardo por ajudas pessoal

Abs

Cara coloca o seu codigo entre as tags code para que fique mais legivel !!

Bravox

pode cre cara era isso o erro…

mas estou com mais uma duvida…

Pattern p = Pattern.compile("[0-9] {2}");

Como eu faria pra pegar “um” ou “dois” caracteres no Pattern.compile();

Já tentei assim…
Pattern p = Pattern.compile("[0-9] {1 || 2}");
Pattern p = Pattern.compile("[0-9] {1 | 2}");
Pattern p = Pattern.compile("[0-9] {1 - 2}");

mas não vai… alguem poderia me ajudar

Bom dia Nino,

Nesta parte do seu código: int senhaNum = Integer.parseInt("senha"); você está passando uma string “senha” e na verdade deveria ser a váriavel senha, neste caso int senhaNum = Integer.parseInt(senha);

Creio que é por isso que ocorre este erro.