Ik heb de onderstaande invoer:
Waarbij bijvoorbeeld in de eerste regel deel A bestaat uit alles dat voor de tab komt, dus woord1 woord1, en deel B bestaat uit uit alles dat na de tab komt in de eerste regel, dus een twee drie. Dat geldt ook voor regel 2, etcetera.
Nu wil ik bij het inlezen, woord1 woord1 in één string stoppen, en een twee drie in een andere string (dus alles wat voor en nà de tab komt dient in een string te komen waarbij de tab zelf buitengesloten wordt. Daarvoor had ik de onderstande code geschreven:
MAAR wat gebeurt er? Ik krijg deze uitvoer:
Maw, de tab wordt meegenomen bij nextLine()! (zie lege ruimte tussen Deel B en een twee drie hierboven in de uitvoer. Hoe kan dit nou? Ik heb toch niet voor niets die delimiter op een tab ingesteld? En hoe kan ik die tab weglaten? Ik wil dat uitsluitend een twee drie in een string worden gestopt.
Ik heb next() geprobeerd ipv nextLine(), alleen dat gaf al helemaal gekke resultaten, de volgende regel werd er namelijk ook in betrokken
code:
1
2
| woord1 woord1 een twee drie woord2 woord2 een twee drie |
Waarbij bijvoorbeeld in de eerste regel deel A bestaat uit alles dat voor de tab komt, dus woord1 woord1, en deel B bestaat uit uit alles dat na de tab komt in de eerste regel, dus een twee drie. Dat geldt ook voor regel 2, etcetera.
Nu wil ik bij het inlezen, woord1 woord1 in één string stoppen, en een twee drie in een andere string (dus alles wat voor en nà de tab komt dient in een string te komen waarbij de tab zelf buitengesloten wordt. Daarvoor had ik de onderstande code geschreven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| public class Koppelen{ PrintStream out; public Koppelen(){ InputSelector.selectFile(); out = new PrintStream(System.out); } public void start() { Scanner in = new Scanner(System.in); while (in.hasNext()){ in.useDelimiter("\t"); String deelA = in.next(); String deelB = in.nextLine(); out.printf("Deel A: " + deelA + " Deel B: " + deelB + "\n"); } } public static void main (String[] argv) { new Koppelen().start(); } } |
MAAR wat gebeurt er? Ik krijg deze uitvoer:
code:
1
2
| Deel A: woord1 woord1 Deel B: een twee drie Deel A: woord2 woord2 Deel B: een twee drie |
Maw, de tab wordt meegenomen bij nextLine()! (zie lege ruimte tussen Deel B en een twee drie hierboven in de uitvoer. Hoe kan dit nou? Ik heb toch niet voor niets die delimiter op een tab ingesteld? En hoe kan ik die tab weglaten? Ik wil dat uitsluitend een twee drie in een string worden gestopt.
Ik heb next() geprobeerd ipv nextLine(), alleen dat gaf al helemaal gekke resultaten, de volgende regel werd er namelijk ook in betrokken