Converter String para inteiro

Boa tarde pessoal, estou tentando converter

uma string para inteiro e da erro

 System.out.println("o valor eh-"+txt.substring(14, pos)+"-fim valor");
//veja o valor que eh mostrado
//o valor eh-1-fim valor

// ou seja realmente eh um numero
// na hora q tento
  Integer.parseInt(txt.substring(14, pos));

retorna o seguinte erro
Exception in thread “main” java.lang.NumberFormatException: For input string: “1”

estranho eh que se eu coloco o valor na mao … consegue converter…
alguem pode me ajudar?

Tio, tem certeza que “txt.substring(14, pos)” contém realmente o valor “1” ou se tem mais alguma sujeira? Integer.parseInt é notoriamente encrencado com sujeiras (inclusive espaços em branco à direita do número, se não me engano). Use o método “trim” para limpar os espaços à esquerda e direita.

amigo ja fiz isso …
como vc pode perceber
o valor retornado do print

o valor eh-1-fim valor

ou seja o 1 esta entre “-” justamente para que eu pudesse verificar
se tinha alguma sujeira…
alguma outra sugestao?

Ai Pessoal, resolvi de uma maneira muito tosca

vi que isso eh um bug do java
que esta relatado em
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4513622

para resolver tive que fazer assim…
adicionei um espaco para depois tirar…
que estranho… mas tive que fazer isso

  String s = new String(txt.substring(14, pos))+" ";
           s = s.trim();
 Integer.parseInt(s);

ai conseguiu converter sem erro

Cara, voce tem certeza? Pq o seguinte codigo funciona:

String s = "teste deT5palgo";
System.out.println(Integer.parseInt(s.substring(9, 10)));

Isso remove o “5” corretamente.

Rafael

certeza amigo…
na verdade no meu codigo
ele faz varias substring…

na pagina de bug que eu mencionei explica isso direitinho…
e ainda diz que o Coletor de lixo nao passa por ele

Fiquei curioso. Dá pra colocar o resto do código? Gostaria de reproduzir o erro.

Cara, o bug diz outra coisa. O seu error foi NumberFormatException.

Lê lá com atenção. O substr não retorna nada errado, o problema lá é isso que você falou, problema de performance. O retorno do método é o esperado.