03. december 2004 - 10:45Der er
26 kommentarer og 1 løsning
Referere til teststring med text.
Hej,
Jeg sidder og arbejder med at lave en application i Java som skal indeholde flere sprog.
I den forbindelse har jeg brug for at samle nogle tekster i en form for collection.
Er der ikke en mulighed for at oprette et eller andet array af en slags så det er muligt at siger "test" -> "Dette er en teststreng". (Dette er selvfølgelig ikke den rigtig syntakt, men skal kun beskrive hvordan funktionaliteten skal være)
Er der ikke en anden måde at gøre det på? Teksken må meget gerne blive hardkodet i filen - bare jeg slippe for at skulle lave en funktion skal skal "putte" alle tekster.
Og hvis man er smart, gemmer man sine værdier i et tekstdokument og læser det ind ved programstart:
Eksempel på indhold: --- test=Dette er en test test1=Dette er en anden test luk=Luk hele programmet ---
Ved programstart læses tekstdokumentet ind og de enkelte linjer splittes op ved lighedstegnet og det på venstre side er nøglen og højre side er værdien.
Lavede for nylig noget lignende, og du kan da lige se de metoder jeg brugte:
public static HashMap readUniqueValues(String path, String ignoreLine) // ignoreLine er en eller flere char som opfattes som kommentarer og derfor ikke skal læses med { BufferedReader reader = getFileStream(path); HashMap values = new HashMap();
if (reader == null) return null;
try { String text = null; String key = null; String value = null;
while ((text = reader.readLine()) != null) { text.trim();
if (!(text.equals("") || text.startsWith(ignoreLine))) { String[] split = text.split("=");
Ja - det har jeg også overvejet. Men ved at hardkode teksterne i en klasse kan man opnå at der ved hjælpe af reflections kan tilføjes et nye sprog bare ved at udsende et .class-fil.
i php kan man noget der minder om
var $danish = array("welcome" => "velkommen", "forgotten" => "Glemt password"};
også kan teksten refererer man til teksen med welcome - er det ikke også sådan en mulighed i Java?
Jamen er det ikke lidt dumt at begynde at læse en fil på den måde når syntaksen er nøjagtig den sammen som ved Property? Jeg ville da ihvert fald have brugt Property i det eksempel.
Jeg kan ikke lige gennemskue, hvad det er der er smart ved ovenstående, så jeg ved ikke om det er muligt i Java. Og jeg vil stadig fraråde at hardcode noget, men hver sin smag :)
Ja, jeg ved godt at det er muligt at lave kommentar i en Property-fil (dumt eksempel). Men jeg får muligvis senere hen brug for at lave noget mere komplekst i tekstfilen, så derfor vil jeg gerne selv kunne styre hvordan den læses.
Nej, jeg er ikke kommet videre. Der ikke noget af dette jeg kan bruger. Property var jo noget jeg selv fandt på, og det vil jeg ikke bruge. Teksterne skal ligge in klassen, og man skal via en tekststreng kunne hente en hel linie i klassen.
Hvis teksterne skal ligge inde i klassen, kan du jo ikke rigtig komme uden om, at lave de put's, som du du tidligere nævnte du vil undgå. Jeg har ingen ideer til hvordan du ellers kan lave det! Jeg ved bare, at man rigtig mange steder gør brug af eksterne filer til at holde styr på sprog!
Og med hensyn til din kommentar om Properties, synes jeg nu ikke det var noget du selv fandt på! Jeg kan ikke lige se i dit spørgsmål, at du nævner noget med Properties - og slet ikke før jeg nævner principperne i det!
Og som Arne skriver, er det du efterspørger i php det samme som et HashMap i Java!
Næh, hvis ikke man vil bruge det som Sun selv lægger op til, bliver det nok svært at finde noget brugbart!
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.