I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
public class CmdParse { public static void foo(int a, int b) { System.out.println("foo " + a + " " + b); } public static void bar(String c) { System.out.println("bar " + c); }
public static void process(String cmdlin) { StringBuffer sb = new StringBuffer(""); List parts = new ArrayList(); boolean inquote = false; for(int i = 0; i < cmdlin.length(); i++) { char c = cmdlin.charAt(i); switch(c) { case ' ': if(!inquote) { parts.add(sb.toString()); sb = new StringBuffer(""); } else { sb.append(c); } break; case '"': inquote = !inquote; break; default: sb.append(c); break; } } parts.add(sb.toString()); String cmd = (String)parts.get(0); if(cmd.equals("foo")) { foo(Integer.parseInt((String)parts.get(1)), Integer.parseInt((String)parts.get(1))); } else if(cmd.equals("bar")) { bar((String)parts.get(1)); } else { System.out.println("unknown command"); } } public static void main(String[] args) { process("foo 123 456"); process("bar \"Dette er en test\""); process("xxxx"); } }
En forbedret version (flere mellemrum og mulighed for "" som " inden i "..."):
import java.util.*;
public class CmdParse { public static void foo(int a, int b) { System.out.println("foo " + a + " " + b); } public static void bar(String c) { System.out.println("bar " + c); }
public static void process(String cmdlin) { StringBuffer sb = new StringBuffer(""); List parts = new ArrayList(); boolean inquote = false; boolean dquote = false; for(int i = 0; i < cmdlin.length(); i++) { char c = cmdlin.charAt(i); switch(c) { case ' ': if(!inquote) { if(sb.length() > 0) { parts.add(sb.toString()); sb = new StringBuffer(""); } } else { sb.append(c); } break; case '"': if(dquote && (i > 0) && cmdlin.charAt(i-1)=='"') { sb.append(c); dquote = false; } else if(inquote && (i < cmdlin.length() - 1) && cmdlin.charAt(i+1)=='"') { dquote = true; } else { inquote = !inquote; } break; default: sb.append(c); break; } } if(sb.length() > 0) { parts.add(sb.toString()); } String cmd = (String)parts.get(0); if(cmd.equals("foo")) { foo(Integer.parseInt((String)parts.get(1)), Integer.parseInt((String)parts.get(1))); } else if(cmd.equals("bar")) { bar((String)parts.get(1)); } else { System.out.println("unknown command"); } } public static void main(String[] args) { process("foo 123 456"); process("bar \"Dette er en test\""); process("xxxx"); process("foo 123 456 "); process("bar \"Dette er en test\""); process("bar \"\"\"\""); } }
Hvordan ser den endelige kode ud. Har indsat "Runtime..." ind i en try, hvorefter jeg får flere fejl der siger: . . java.io.IOException: java.io.IOException: bar: not found java.io.IOException: java.io.IOException: xxxx: not found .
ahh... jeg har ikke lige tænkt mig om :) Hvilken kode kan jeg bruge for at kalde en af de andre java-metoder? Hvis jeg nu har en metode foo med parametrene 1 og "myParm".
okay :) jeg laver det på den måde du foreslog. Mange tak for hjælpen.
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.