|
| Er der en lettere måde (strings)? Fra : t_p |
Dato : 28-06-02 17:10 |
|
Jeg har en string med flg. format:
ok|name,test1,test2,test3
Hvor | og alt efter kan blive gentaget en ukendt antal gange, f.eks.:
ok|Peter,aaa,bbb,ccc|Hans,aaa,bbb,ccc|Lotte,aaa,bbb,ccc|Trine,aaa,bbb,ccc
Den vil jeg gerne have delt op, så jeg har en løkke der løber "| |" igennem
så jeg har mellemresultaterne. F.eks. efter første gennemløb har jeg:
Peter
aaa
bbb
ccc
Efter andet gennemløb har jeg
Hans
aaa
bbb
ccc
Osv. Det har jeg så lavet herunder (og det virker fint), men da jeg i mit
program skal arb. meget med strings vil jeg gerne have den "bedste"
kode. Med bedste kode mener jeg mest overskuelige, jeg mener selv
at koden er pæn og overskuelig, meeeen nu er det jo mig selv der har
lavet det, så jeg kunne godt tænke mig at høre hvad andre mener :)
public void addStrings(String a)
{
boolean more = true;
int Place;
String Name;
String test1;
String test2;
String test3;
a = a.substring(3, a.length());
while (more)
{
for (int i = 1; i <= 4;i++)
{
switch (i)
{
case 1:
Place = a.indexOf(",");
Name = a.substring(0, Place);
a = a.substring(Place+1, a.length());
break;
case 2:
Place = a.indexOf(",");
test1 = a.substring(0, Place);
a = a.substring(Place+1, a.length());
break;
case 3:
Place = a.indexOf(",");
test2 = a.substring(0, Place);
a = a.substring(Place+1, a.length());
break;
case 4:
Place = a.indexOf("|");
if (Place == -1)
{
test3 = a;
more = false;
}
else
{
Status = a.substring(0, Place);
test3 = a.substring(Place+1, a.length());
}
break;
};//end switch (i)
};//end for (int i = 1; i <= 4;i++)
};//end while (more)
};//end addStrings
Ps. Det at jeg skal bruge delresultaterne er endnu ikke lagt ind.
| |
N/A (28-06-2002)
| Kommentar Fra : N/A |
Dato : 28-06-02 21:29 |
|
| |
t_p (28-06-2002)
| Kommentar Fra : t_p |
Dato : 28-06-02 21:29 |
|
"Lasse Westh-Nielsen" <lasseNOSPAM@daimi.NOSPAM.au.dk> wrote in message
news:Uv2T8.13$cn5.54940725@news.orangenet.dk...
> Jeg tror StringTokenizer er din ven:
>
> http://java.sun.com/j2se/1.4/docs/api/java/util/StringTokenizer.html
>
> Først tokenizer du på '|', det giver dig strengene "Peter,aaa,bbb,ccc",
> "Hans,aaa,bbb,ccc", ...
>
> Så tokenizer du hver af de strenge på ',', det giver dig "Peter", "aaa",
> "bbb" og "ccc" og forfra...
>
> Det kommer til at fylde meget mindre, og "se pænere ud" tror jeg
Lyder smart den kigger jeg på :) Tak.
--
T
| |
Arve Lillehagen (28-06-2002)
| Kommentar Fra : Arve Lillehagen |
Dato : 28-06-02 21:49 |
|
t_p wrote:
> Jeg har en string med flg. format:
>
> ok|name,test1,test2,test3
>
> Hvor | og alt efter kan blive gentaget en ukendt antal gange, f.eks.:
>
> ok|Peter,aaa,bbb,ccc|Hans,aaa,bbb,ccc|Lotte,aaa,bbb,ccc|Trine,aaa,bbb,ccc
>
> Den vil jeg gerne have delt op, så jeg har en løkke der løber "| |" igennem
> så jeg har mellemresultaterne. F.eks. efter første gennemløb har jeg:
>
> Peter
> aaa
> bbb
> ccc
>
> Efter andet gennemløb har jeg
>
> Hans
> aaa
> bbb
> ccc
>
> Osv. Det har jeg så lavet herunder (og det virker fint), men da jeg i mit
> program skal arb. meget med strings vil jeg gerne have den "bedste"
> kode. Med bedste kode mener jeg mest overskuelige, jeg mener selv
> at koden er pæn og overskuelig, meeeen nu er det jo mig selv der har
> lavet det, så jeg kunne godt tænke mig at høre hvad andre mener :)
>
> public void addStrings(String a)
> {
> boolean more = true;
> int Place;
> String Name;
> String test1;
> String test2;
> String test3;
> a = a.substring(3, a.length());
> while (more)
> {
> for (int i = 1; i <= 4;i++)
> {
> switch (i)
> {
> case 1:
> Place = a.indexOf(",");
> Name = a.substring(0, Place);
> a = a.substring(Place+1, a.length());
> break;
> case 2:
> Place = a.indexOf(",");
> test1 = a.substring(0, Place);
> a = a.substring(Place+1, a.length());
> break;
> case 3:
> Place = a.indexOf(",");
> test2 = a.substring(0, Place);
> a = a.substring(Place+1, a.length());
> break;
> case 4:
> Place = a.indexOf("|");
> if (Place == -1)
> {
> test3 = a;
> more = false;
> }
> else
> {
> Status = a.substring(0, Place);
> test3 = a.substring(Place+1, a.length());
> }
> break;
> };//end switch (i)
> };//end for (int i = 1; i <= 4;i++)
> };//end while (more)
> };//end addStrings
>
> Ps. Det at jeg skal bruge delresultaterne er endnu ikke lagt ind.
>
>
java.util.StringTokenizer vil gi en mer kompakt kode.
Du kan også sette delimiter i konstruktør på "|" og "," og la det hele
gå i to løkker inne i hverandre.
Arve
| |
|
|