O meu sistema tem que pegar o valor que está na variavel texto(que possui mais de uma linha) e separar os tokens, depois comparar se for igual a String envia a mensagem.
Quando eu digito apenas um String o resultado da certo, mas quando eu digito mais de um String não aparece nada e deveria aparecer o tanto de String que eu digitei
Acho que não expliquei claramente.
Eu quis dizer que quando eu digito:
String String
String
A saída deveria ser:
String
String
String
mas aparece somente um String na saída e deveria sair três String
P
paulinhopamec
Esse código abaixo, quando as palavras String estão na primeira linha, imprime certo. Mas quando eu tenho a palavra String em mais de uma linha, não imprime nada
Eis o problema: existem dois separadores diferentes: o espaço e o caracter de quebra de linha. Tavez você tivesse que quebrar todas as linhas, para depois, em cada linha, quebrar a partir dos espaços.
peczenyj
Se estão em mais de uma linha provavelmente o problema é no split por espaço em branco
String String
String
é, na verdade
<String String\nString>
uma solucao é fazer o split por qq coisa q não seja caracteres
texto.split("[^a-zA-Z]");
ou, alguem me corrija
texto.split("\W");
P
paulinhopamec
Entao, eu ja tentei fazer isso, mas não consegui, se alguém saber como fazer, por favor me ajude
M
marcobiscaro2112
[quote=peczenyj]Se estão em mais de uma linha provavelmente o problema é no split por espaço em branco
String String
String
é, na verdade
<String String\nString>
uma solucao é fazer o split por qq coisa q não seja caracteres
texto.split("[^a-zA-Z]");
ou, alguem me corrija
texto.split("\W");
Exato! Bem pensado. Ou ainda usando a sequência para caracteres em branco “\s”(inclui os caracteres " " “\t” “\n” “\x” “0B” “\f” “\r”):
Leia sobre isso, talvez seja o seu problema:
Pattern.MULTILINE Enables multiline mode. In multiline mode the expressions ^ and $ match just after or just before, respectively, a line terminator or the end of the input sequence. By default these expressions only match at the beginning and the end of the entire input sequence. Multiline mode can also be enabled via the embedded flag expression (?m).
Po, vai testando ai
P
paulinhopamec
Usando o
texto.split("\s");
deu certo :lol:
o \s quer dizer que ele vai separar o token por tudo que tiver " " “\t” “\n” “\x” “0B” “\f” “\r”?
M
marcobiscaro2112
Exatamente. Todos os caracteres de espaçamento (o próprio espaço, a quebra de linha, a tabulação, etc.).