2016-05-15 5 views
-6

ich habe eine Zeichenkette mit vielen Wert, ich will den ganzen Wert erhalten und ihn in neue Zeichenkettenvariable setzen. nachdem es i String setzen es würde getan []java, wie man Zeichenkette in Zeichenkette [] umwandelt und Spezifische Zeichenkettenvariabel eingibt

im Import lib:

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.Date; 
import java.util.List; 
import java.util.Map; 
import java.util.stream.Collectors; 

import org.apache.log4j.Logger; 

import com.opensymphony.xwork2.ActionContext; 

import oracle.jdbc.OracleCallableStatement; 
import oracle.sql.ArrayDescriptor; 
import oracle.sql.ARRAY; 
import oracle.jdbc.OracleTypes; 
import java.sql.*; 

dies mein Code:

private List<monitoringPpobModel> lisPpob= new ArrayList<monitoringPpobModel>(); 


con = dbEngine.getConnection(); 
OracleCallableStatement css = null; 
for(int i=0;i<lisPpob.size(); i++) 
     { 
      System.out.println("param 1 = "+lisPpob.get(i).getLBRAP2T()); 
      System.out.println("param 2 = "+lisPpob.get(i).getRPAP2T()); 

      ArrayDescriptor oracleVarchar2Collection = ArrayDescriptor.createDescriptor("OPHARTDE.ARAY",con); 

      List<String> lis= Arrays.asList(lisPpob.get(i).getLBRAP2T()); 
      List<String> lis2= Arrays.asList(lisPpob.get(i).getRPAP2T()); 

      String ket1 = lis.stream().map(Object::toString).collect(Collectors.joining(",")); 
      String ket2 = lis2.stream().map(Object::toString).collect(Collectors.joining(",")); 

      //manual declare - this work 
      String aa = "1"; 
      String bb = "3"; 
      String cc = "5"; 
      String dd = "7"; 
      String ee = "8"; 

      String[] lbr = {aa,bb,cc,dd,ee}; 
//   String[] lbr = {ket1}; 

      //auto declare - this not work 
      String[] rp = {ket2}; 

      ARRAY ora_lbr = new ARRAY (oracleVarchar2Collection, con,lbr); 
      ARRAY ora_rp = new ARRAY (oracleVarchar2Collection, con,rp); 

      System.out.println("value 1= "+ lbr.length +" = "+ lbr[i]); 
      System.out.println("value 2= "+ rp.length +" = "+ rp[i]); 

      css = (OracleCallableStatement) con.prepareCall("{call OPHARTDE.PPOBUPDATE2(?,?)}"); 
      css.setArray(1, ora_lbr); 
      css.setArray(2, ora_rp); 
      css.execute(); 
} 

das Ergebnis von println ist:

param 1 = 75764674653, 5434, 354, 434, 5435 
param 2 = 53, 535, 25, 53, 434 
value 1= 5 = 1 
value 2= 1 = 53, 535, 25, 53, 434 

Was ich will ist der Wert von:

String[] rp = {ket2}; 

ist wie Wert in

String[] lbr = {aa,bb,cc,dd,ee}; 

Vielen Dank für Hilfe. Es war so schwer für mich. jede Hilfe bitte

+0

Hilfe bitte. danke –

+0

Ich habe keine Ahnung, was deine Fragen sind. Sei genau. – UDKOX

+0

erhalten Sie jeden Wert von Zeichenfolge und in Zeichenfolge [] –

Antwort

0

Dies wird jedes Zeichen in einem String-Objekt in ein Array von Strings setzen.

String[] rp = new String[ket2.length()]; for(int i = 0; i < rp.length(); i++) { rp[j] = "" + ket2.charAt(i); }

Sag mir, wenn das hilft!

+0

Entschuldigung, ich öffne diese Website. tatsächlich wurde es von mir in meiner Lösung nach vielen Versuchen gelöst. aber ich muss deinen Code für Respekt versuchen. –

+0

Ich habe versucht, Ihren Code, aber gib mir einen Fehler. Ein Fehlerprotokoll ist 'java.sql.SQLException: ORA-01722: ungültige Nummer'. –

+0

das ist mein gelöster Code. Ich füge das in meiner Liste hinzu lis2 = Arrays.asList (lisPpob.get (i) .getRPAP2T(). split ("\\ s *, \\ s *")); 'wenn ich alle Werte von lis bekommen möchte, was ich tat' String [] myentries2 = lis2.toArray (neuer String [lis2.size()]); ". danke –

Verwandte Themen