Converter para int

daew galera… venho aqui com uma dúvida tosca…

Sou iniciante e to com alguns probleminhas…

Seguinte:

criei um Web Sevice utilizando o Apache e o Axis. Os métodos estão todos funcionando, minha aplicação recebe o resultado, porém não estou conseguindo tratar esse resultado.

meu código é o seguinte:

[code]private String url = “http://192.168.1.125:8080/axis/Servico.jws”;

StringBuffer stringBuffer = new StringBuffer(); OU Object numero = null;

// Chama o WebService
SoapObject client = new SoapObject(url, “celular50”);
client.addProperty(“coluna”, “tensaoa”);
HttpTransport ht = new HttpTransport(url, “celular50”);

try {
stringBuffer.append(ht.call(client)); OU numero = ht.call(client);
} catch (org.ksoap.SoapFault ex) {
System.out.println("FaultString: " + ex.faultstring);
} catch (IOException ex) {
ex.printStackTrace();
}

System.out.println("O Resultado eh: " + stringBuffer.toString()); OU System.out.println("O Resultado eh: " + numero);
[/code]

Quando eu mando mostrar no console, ele exibe o seguinte:

O Resultado eh: [108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 110, 109, 109, 109, 109, 108, 108, 108, 109, 108, 108, 108, 109, 109, 108, 108, 108]

Quando eu acesso o WS pelo browser através do endereço http://192.168.1.125:8080/axis/Servico.jws?method=celular50&coluna=tensaoa ele retorna o seguinte:

<soapenv:Envelope>
 <soapenv:Body>
  <celular50Response soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
   <celular50Return soapenc:arrayType="xsd:int[50]" xsi:type="soapenc:Array">
    <celular50Return xsi:type="xsd:int">108</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">110</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">108</celular50Return>
    <celular50Return xsi:type="xsd:int">108</celular50Return>
    <celular50Return xsi:type="xsd:int">108</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">108</celular50Return>
    <celular50Return xsi:type="xsd:int">108</celular50Return>
    <celular50Return xsi:type="xsd:int">108</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">109</celular50Return>
    <celular50Return xsi:type="xsd:int">108</celular50Return>
    <celular50Return xsi:type="xsd:int">108</celular50Return>
    <celular50Return xsi:type="xsd:int">108</celular50Return>
   </celular50Return>
  </celular50Response>
 </soapenv:Body>
</soapenv:Envelope>

Eu preciso manipular esse resultado para que eu possa pegar cada um dos 50 valores individuais para adicionar em um gráfico que ja está implementado, mas tem que ser INDIVIDUAL e no formato int.

Sei que a pergunta é tosca mas espero que possam me ajudar!

Valeu!

teh+

[code]
try {
stringBuffer.append(ht.call(client)); OU numero = ht.call(client);
String minhastring=stringbuffer.tostring() ;
minhastring.replaceALL("[","");
minhastring.replaceALL("]","");

  String [] numeros=minhaString.split(",");
  for(String  s:numeros)
      Integer numeroparafazergrafico=Integer.parseInteger(s);

} catch (org.ksoap.SoapFault ex) {
System.out.println("FaultString: " + ex.faultstring);
} catch (IOException ex) {
ex.printStackTrace();
} [/code]

deve ter jeitos bem fácil de fazer isto , mas acho que resolve.

Minha sugestão é que você use ByteArrayInputStream/OutputStram e DataInputStream/OutputStream.

Assim, você pode armazenar os int’s separadamente, lendo-os um a um com o método nomedoDataInput.writeInt();
e depois tem a possibilidade de ler ao criar um DataOutputStream e usar o método nomedoDataOutoput.readInt();

Um exemplo:

método de conversão/escrita (byte[], ou conjunto de inteiros){

ByteArrayInputStream bais = new ByteArrayInputStream;
DataInputStream dis = new DataInputStream(bais);

for (int i = 0; i = byte[].lenght; i++){
dis.writeInt(byte[i] transformado em int ou indíce 1 do conjunto de inteiros);

}

}

Espero ter ajudado. Boa sorte .

E aí galera, desculpe a demora em retornar aqui…

Agradeço a ajuda de todos, porém não deu certo, pois esqueci de dizer q era J2ME… ou seja… beeeeem limitado e n tem as funções apresentadas aqui.

Mas nem tudo está perdido! Tendo por base as respostas, usei o seguinte para retirada de caracteres:

resultado = resultado.replace(’[’, ’ ‘);
resultado = resultado.replace(’]’, ’ ');
resultado = resultado.trim();

e para dar o “split” eu usei o metodo encontrado aqui http://forums.sun.com/thread.jspa?threadID=721672

public final static String[] split( String str, char separatorChar ) { if ( str == null ) { return null; } int len = str.length(); if ( len == 0 ) { return null; } Vector list = new Vector(); int i = 0; int start = 0; boolean match = false; while ( i < len ) { if ( str.charAt( i ) == separatorChar ) { if ( match ) { list.addElement( str.substring( start, i ).trim() ); match = false; } start = ++i; continue; } match = true; i++; } if ( match ) { list.addElement( str.substring( start, i ).trim() ); } String[] arr = new String[list.size()]; list.copyInto( arr ); return arr; }

Depois tive q converter cada valor do array para int para poder jogar na tela como gráfico…

Processo chato mas funcional (pelo menos no emulador), agora quero ver no celular heheheheh

ainda descubro como passar direto uma int do Web service, sem precisar ficar convertendo! SE ALGUÉM SOUBER, AGRADEÇO!

Muito obrigado pela ajuda…

Espero em pouco tempo entender o suficiente para ajudar aqui também!

valeu