16. september 2003 - 11:03Der er
10 kommentarer og 1 løsning
Ópdel string til brug i xsd
Hej,
Jeg har en udfordring mht. en lang streng.
Strengen kan se sådan her ud:
{result(name=id,type=string),(name=age,type=integer)=call storedprocedure([CustomerID IN VARCHAR])
jeg skal parse denne streng igennem og trække name'ets værdi samt typens værdi ud for alle name/type par der eksisterer i strengen(skal bruges til at generere et XSD.
Samtidig skal alt til venstre for call slettes fra strengen.
Super! Jeg prøver det lige. Jeg har også set, at StringTokenizer har en constructor med to/tre formelle parametre - mon den også kan bruges. Jeg tester lige det hele.
name og type er de eneste to typer, der kan stå i parenteserne. De skal benyttes til at lave xml elementer, der skal være med til at definere at xsd. Det er rent faktisk kolonne navne- og typer fra en database.
public static void main(String[] args) { process("{result(name=id,type=string),(name=age,type=integer)=call storedprocedure([CustomerID IN VARCHAR])"); } private final static int NONE = 0; private final static int NAME = 1; private final static int TYPE = 2; public static void process(String s) { StringTokenizer st = new StringTokenizer(s, "=,()"); int state = NONE; while(st.hasMoreTokens()) { String tok = st.nextToken(); switch(state) { case NONE: if(tok.equals("name")) { state = NAME; } else if(tok.equals("type")) { state = TYPE; } break; case NAME: System.out.println("name: " + tok); state = NONE; break; case TYPE: System.out.println("type: " + tok); state = NONE; break; } } } }
Glimrende Arne! Du er min redningsmand endnu en gang! Det løser min problemstilling!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.