Delimiter w Stringu (parsowanie)

Odpowiedz Nowy wątek
2011-07-27 20:06
maslak
0

Siemanko! :)

Mam oto takie pytanie. Mam sparsować stringa, którego części są oddzielone znakiem pionowej kreski - takim jak poniżej:
|

Próbowałem robić to tak:

String output = "aaa | bbb | ccc";
String[] tmp = output.split("|");
        for (int i = 0; i < tmp.length; i++) {
            System.out.println(tmp[i]);
        }

ale niestety to nie działa, gdyż pionowa kreska jest znakiem specjalnym w wyrażeniach regularnych, a jeśli dam:

output.split("/|");

to mi wypluwa, że nie może być takiego delimitera.

Poratujecie? :)

Pozostało 580 znaków

2011-07-27 20:12
0

a jakbyś do tego "płotka" dorzucił jeszcze jeden i dmuchnął na nie tak żeby się przewróciły na lewą stronę?

Pozostało 580 znaków

2011-07-27 20:19
maslak
0

Nie wiem co masz na myśli.

Na pewno

output.split("|\");

także nie działa.

Pozostało 580 znaków

2011-07-27 20:20
0

miałem na myśli split("\|");

Pozostało 580 znaków

2011-07-27 20:22
0
import java.util.Arrays;
 
public class Main {
 
    public static void main(String[] args) {
        System.out.println(Arrays.toString("aaa | bbb | ccc".split("\\|")));
    }
}

http://download.oracle.com/ja[...]l/regex/pre_char_classes.html

Edit:
Zbyt wolny jestem :P


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit, 2011-07-27 20:23

Pozostało 580 znaków

2011-07-27 20:22
maslak
0

Dzięki

Pozostało 580 znaków

2011-07-27 20:25
bo
0

Można też tak:

        String s="aaa | bbb| ccc";
        StringTokenizer st=new StringTokenizer(s," |");
        while(st.hasMoreTokens())
        {
            String token=st.nextToken();
            System.out.println(token);
        }

Zadziała niezależnie od tego czy "|" ma za sąsiadów spacje, czy nie.

No właśnie, zależy co autor chce zrobić ze spacjami. - Wibowit 2011-07-27 20:40

Pozostało 580 znaków

2011-07-27 22:49
0

A takie coś też by zadziałało ?

split("[|]");

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0