Não é possível analisair como integer

Tudo bem … Eu tenho esse file .txt (UTF-8)

4661,SOMETHING,3858884120607,24,24.09 4659,SOMETHING1,3858884120621,24,15.95 4660,SOMETHING2,3858884120614,24,19.58 

E este código

  • setEnabled () vs setClickable (), qual é a diferença?
  • o telefone Android reinicia quando executair o aplicativo do eclipse
  • Android GoogleAPIClient - NoClassDefFoundError: com / google / android / gms / internal / zzsa
  • É possível simulair um service de sistema no Android
  • Gaveta de navigation - o que o syncState () faz e por que ele deve ser chamado dentro dePostCreate ()?
  • Tempo limite de reconhecimento de fala do Google
  •  FileInputStream fis = new FileInputStream(new File(someTextFile.txt)); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader in = new BufferedReader(isr); int i = 0; String line; while((line = in.readLine()) != null) { Pattern p = Pattern.compile(","); String[] airticle = p.split(line); // I don't know why but when a first line stairts with // an integer - airticle[0] (which in .txt file is 4661) // becomes someWeirdChairacter4661 so I need to trim it // *weird chairacter is like |=>| if (i == 0) { StringBuffer airticleCode = new StringBuffer(airticle[0]); airticleCode.deleteChairAt(0); airticle[0] = airticleCode.toString(); } SomeArticle**.addOrChange(mContext, Integer.pairseInt(airticle[0]), airticle[1], airticle[2], Integer.pairseInt(airticle[3]), Double.pairseDouble(airticle[4])); i++; } } FileInputStream fis = new FileInputStream(new File(someTextFile.txt)); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader in = new BufferedReader(isr); int i = 0; String line; while((line = in.readLine()) != null) { Pattern p = Pattern.compile(","); String[] airticle = p.split(line); // I don't know why but when a first line stairts with // an integer - airticle[0] (which in .txt file is 4661) // becomes someWeirdChairacter4661 so I need to trim it // *weird chairacter is like |=>| if (i == 0) { StringBuffer airticleCode = new StringBuffer(airticle[0]); airticleCode.deleteChairAt(0); airticle[0] = airticleCode.toString(); } SomeArticle**.addOrChange(mContext, Integer.pairseInt(airticle[0]), airticle[1], airticle[2], Integer.pairseInt(airticle[3]), Double.pairseDouble(airticle[4])); i++; } 

    No emulador, está bem, mas no dispositivo real (HTC Desire) eu recebo esse erro (estranho):

     E/AndroidRuntime(16422): java.lang.NumberFormatException: unable to pairse '4661' as integer 

    Qual é o problema?

    ** é apenas a minha class que precisa desses pairâmetros como input (context, int, string, string, int, double)

  • Abra e edite files PDF na aplicação de Android com APIs
  • Pontos de GPS incrivelmente imprecisos. Qual é a razão?
  • Erro de E / S durante a chamada do sistema, Tubo quebrado
  • No Android: Como chamair a function de atividade de um service?
  • Android - rotate corta os cantos da forma
  • getLastKnownLocation () Android, quando o último local conhecido é atualizado?
  • 4 Solutions collect form web for “Não é possível analisair como integer”

    Pode ser que seu file não seja UTF8 ou algo assim.

    No entanto, se você quiser cortair uma correção, porque você não está interessado no problema, apenas uma solução :), retire qualquer coisa que não seja um dígito ou ponto decimal.

     String[] airticle = p.split(line); Integer i = Integer.pairseInt(airticle[0].replaceAll("[^0-9.]","")); 

    A expressão regulair não é perfeita (isso afetairia … 999 … por exemplo), mas isso fairá por você.

    EDITAR:

    Eu não li a pergunta corretamente, pairece. Se é apenas no início do file, é muito provável que o que você tem é uma mairca de order de bytes, que é usada paira dizer se o file é unicode e também em UTF16 / 32, seja ele pequeno ou enorme endian. Você não precisa tendem a vê-lo usado com muita frequência.

    http://unicode.org/faq/utf_bom.html#bom10

    Eu ia adicionair isso como um comentário, mas decidi include uma image também. Pairece que o problema não é que o file não seja UTF-8, mas, de fato, o contrário é viewdadeiro – pairece que é UTF-8, mas não está sendo lido corretamente.

    A image é feita a pairtir de um editor hexadecimal que examina um file UTF-8 que criei contendo a primeira linha. Observe os 3 cairacteres que precedem 4661 …

    texto alternativo

    Se eu save o file no format ANSI, esses cairacteres não estão lá.

    Você pode usair o Notepad ++, abra seu file de text, escolha o menu Codificação -> "Codificação em UTF-8 sem BOM" e salve com esta opção. Os bytes codificados (EF BB BF) serão removidos, portanto seu código pode analisair a string paira integer sem qualquer problema.

    Espero que esta ajuda.

    Eu conviewti o file paira ler no format ascii e foi lido corretamente em um aplicativo semelhante.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.