04. juli 2008 - 20:06Der er
23 kommentarer og 1 løsning
Oprette en tråd som notificerer en anden klasse
Hejsa,
Jeg fatter ikke det med at få en tråd til at notificere en anden tråd, jeg har fået en tråd til at køre via en string, så den kører med et random output, nu vil jeg så have at når den rammer en af de random output, skal den samtidig notificere en anden klasse, som så skriver et eller andet ud med en system.out.
Du kører 3 tråde som hver udskriver den samme streng 99 gange med et tilfældigt interval imellem.
Jeg synes ikke at programmet matcher teksten.
Vil du bare gerne have nogle eksempler på hvordan en tråd når den har noget information færdig kan sende den over til tråd B som så kører videre med den ?
Hmm.. apropos denne problemstilling så bøvler jeg med en validering, for lige at lave et sidespring, hvor den skal gå ind og tjekke op på en String ud fra et chararray, jeg kan bare ikke lige gennemskue hvad jeg gør galt?
public boolean erValidHurtig(String regNr) { regNr = "AB12345";
Koden skal retunere true hvis det første bogstav i strengen er i chararray "et", jeg laver så en for-løkke der render det igennem hvis charAt(0) er i regNr på plads 1
Jeg er ikke helt sikker på, at du forstår hvad jeg mener, jeg vil gerne gøre sådan, at jeg med hver char[] kan tjekke henholdsvis det første tegn i stringen på plads 0 og med det andet char[] plads 1, og hvis der er et af bogstaverne så skal den retunere true, eller også skal den til sidste retunere false, hvis ingen af kravene er opfyldt
Den her linje er jeg usikker på, for den retunerer ikke true
if(regNr.charAt(0) == to.length){ return true;
Den skal gå ind på charArray to og tjekke om bogstavet er der og ligemeget hvad jeg skriver i Stringen retunerer den ikke det den skal.
Hej - Jeg kan ikke få det logisk til at give mening, men nu ved jeg heller ikke hvad det er du er ved at skrive.. Som jeg læser det:
public boolean erValidHurtig(String regNr) { String regNr = "AB12345"; char[][] arrays = { {'A','B'}, {'C','D','E'} }; for (int i=0;i<arrays.length;i++) { for (int j=0;j<arrays[i].length;j++) { if (regNr.charAt(i)).equals(arrays[i][j]) return true; } } return false; }
Bemærk jeg ikke har compilet det og jeg er lidt i tvivl om 2d array'et kan defineres således i java. Den kan også vendes om, således at i følger regNr length istedet, men et tjek af om du out-of-bounds..
if (regNr.charAt(i)).equals(arrays[i][j]){ med at gå fra char til int, jeg skal kun tjekke på plads 0 i strengen. Og det skal kun være med det ene array
Med java.util.concurrent er brug af wait() og notify() sjaeldent noedvendigt.
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.