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.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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.