ik ben een java newbie, maar ben een sort aan het schrijven; het idee is je voert een regel in en hij gaat de woorden vervolgens sorteren in de zin. Nu is het schrijven van een sorteer functie al gelukt, echter ik wil graag duplicaten in de zin voorkomen , dus wanneer 4x 'een' voorkomt moet dat maar 1x voorkomen in de gesorteerde lijst.
iemand een idee hoe ik dat moet aanpakken, heb zelf al veel gegoogled en kan iets relevants vinden, aangezien je normaal gewoon een functie uit de sort library voor arrays zou nemen, maar dat mag nu niet..
EDIT:
ik heb al de volgende code, echter ik houd duplicaten wie weet hoe ik dit kan verhelpen? iets met een break en continue misschien?
iemand een idee hoe ik dat moet aanpakken, heb zelf al veel gegoogled en kan iets relevants vinden, aangezien je normaal gewoon een functie uit de sort library voor arrays zou nemen, maar dat mag nu niet..
EDIT:
ik heb al de volgende code, echter ik houd duplicaten wie weet hoe ik dit kan verhelpen? iets met een break en continue misschien?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
| import java.util.*;
import jpb.*;
public class InsertSort {
public static void main (String[] args) {
//input opgeslagen in string inputLine
SimpleIO.prompt("Voer de woorden in: ");
String inputLine = SimpleIO.readLine();
StringTokenizer st = new StringTokenizer(inputLine);
//als er geen woorden voorkomen exit programma
if (st.countTokens()<1)
{ System.exit(0);
}
//tel het aantal tokens, deze staan gelijk aan het aantal elementen nodig in array words
int max = st.countTokens();
String [] words;
words=new String[max];
int a=0;
//zet de losse woorden in de string array words
while (st.hasMoreTokens()) {
words[a] = st.nextToken();
a++;
}
//voer soort uit
words=sort(words);
//print de array words
for (int x=0;x<max;x++ )
{
System.out.println(words[x]);
}
}
private static String[] sort(String[] s) {
int i;
String temp;
int l = s.length;
for (int u = 0; u <= l-1; u++){
temp = s[u];
i = u - 1;
while ( i >= 0 && (s[i].compareTo(temp)>=0)){
if (s[i].compareTo(temp)==0){
System.out.println("een dubbele!" + s[i]);
}
s[i+1] = s[i];
i--;
}
s[i+1] = temp;
}
//geef de waardes van de gesorteerde array
return s;
}
} |
[ Voor 23% gewijzigd door Verwijderd op 20-02-2005 16:14 ]