E aí pessoal blz?
Bom estava fazendo uma aplicação quando me deparei com a situação quando usei o método split( … ).
Se eu uso:
String steste = "ABC|DEF";
String[] saux = steste.split( "|" );
for ( int i = 0; i < saux.length; i++ ) {
System.out.println( saux[ i ] );
}
O código imprime:
A
B
C
D
E
F
Mas em uma oportunidade eu me lembro que vi que tinha que fazer da seguinte forma para ele quebrar a String corretamente.
String steste = "ABC|DEF";
String[] saux = steste.split( "\|" );
for ( int i = 0; i < saux.length; i++ ) {
System.out.println( saux[ i ] );
}
Esse código imprime corretamente:
ABC
DEF
Não entendi o pq das duas barras invertidas. Alguém consegue me explicar???
Bom final de semana a todos
Valeu
[]'s
Vamos explicar direitinho.
A “|” sozinha é um caracter especial, usado em expressões regulares para expressar alternação. Exemplo:
“ISTO|AQUILO” se lê como “ou ISTO ou AQUILO”, ou seja, é uma expressão que bate com ISTO ou com AQUILO.
Se você puser “|” sozinha, então o split vai pensar que é “ou vazio ou vazio”, ou seja, bate com qualquer coisa na hora de fazer o split, e é por isso que acaba lhe voltando uma lista de todos os caracteres da string.
Entretanto, se você usar um “” antes de um caracter, o seu significado deixa de ser especial. Só que para você representar um “” em uma string no Java, é necessário duplicá-la, já que o próprio “” é especial (mas agora para o Java).
Então é por isso que você precisa usar “\|”.
OK? A história é comprida e chata, mas tem de ser contada. Não é tão complicada quanto a seqüência de eventos que levou à Proclamação da República, nem tão interessante, mas é o que você precisa saber.
[quote=thingol]Vamos explicar direitinho.
A “|” sozinha é um caracter especial, usado em expressões regulares para expressar alternação. Exemplo:
“ISTO|AQUILO” se lê como “ou ISTO ou AQUILO”, ou seja, é uma expressão que bate com ISTO ou com AQUILO.
Se você puser “|” sozinha, então o split vai pensar que é “ou vazio ou vazio”, ou seja, bate com qualquer coisa na hora de fazer o split, e é por isso que acaba lhe voltando uma lista de todos os caracteres da string.
Entretanto, se você usar um “” antes de um caracter, o seu significado deixa de ser especial. Só que para você representar um “” em uma string no Java, é necessário duplicá-la, já que o próprio “” é especial (mas agora para o Java).
Então é por isso que você precisa usar “\|”.
OK? A história é comprida e chata, mas tem de ser contada. Não é tão complicada quanto a seqüência de eventos que levou à Proclamação da República, nem tão interessante, mas é o que você precisa saber.
[/quote]
| = ou
Sim…concordo…
Mas se está entre “” ("|")…ele é lido como String…se fosse ‘|’ seria lido como char…e não como OU
Não?