@BasilBourque - Não encontrei nenhum botão de execução nesse link
nanosoft
1
@nanosoft A página no IdeOne.com é executada automaticamente após o carregamento. Veja a saída abaixo do código, na seção stdout . Para alterar o código, clique no forklink próximo ao canto superior esquerdo.
O que você tem deve funcionar. Se, no entanto, os espaços fornecidos tiverem como padrão ... outra coisa? Você pode usar o regex de espaço em branco:
str ="Hello I'm your String";String[] splited = str.split("\\s+");
Isso fará com que qualquer número de espaços consecutivos divida sua sequência em tokens.
Como observação, não tenho certeza de que "dividido" seja uma palavra :) Eu acredito que o estado de ser vítima de uma divisão também é "dividido". É uma daquelas coisas gramaticais complicadas :-) Não tente ser exigente, apenas imaginei que eu a passaria adiante!
Sou suíço, o que você esperava, meu inglês não é o melhor; P, de qualquer forma, funcionou!
Safari
29
:-) Ei, não é grande. Eu usei alguns nomes de variáveis ridículos (no código eu provavelmente não deveria ter deixado ir ao ar!) Eu não estava tentando ser um nazista de gramática ou qualquer coisa, apenas transmitindo um pouco de trivialidades, só isso.
corsiKa
7
@ Safari, você acabou de receber 2 ótimos conselhos no preço de 1. brincando. Ótima resposta.
Nirmal Mangal
8
"O que você tem deve funcionar". Digo algo semelhante com bastante frequência quando meu código é quebrado.
Griffin
1
Acho útil, pois meu caso de uso foi dividir a sequência e remover vários espaços. Uma linha de código faz as duas coisas para mim.
21418 Niharika Upadhyay
87
Embora a resposta aceita seja boa, lembre-se de que você terminará com uma sequência vazia à esquerda se a sequência de entrada começar com um espaço em branco. Por exemplo, com:
String str =" Hello I'm your String";String[] splitStr = str.split("\\s+");
Acredito que colocar uma expressão regular entre parênteses str.split deve resolver o problema. O método Java String.split () é baseado em expressões regulares, portanto, o que você precisa é:
str ="Hello I'm your String";String[] splitStr = str.split("\\s+");
Existe a possibilidade de lançar a exceção ArrayIndexOutofBounds.
Ajay Takur
2
Não, isso não exibirá "ArrayIndexOutofBounds" porque declarei o tamanho da matriz de acordo com o número de tokens encontrados em String. isso garantirá que o tamanho das matrizes não exceda os tokens recebidos em uma sequência.
import java.util.regex.Pattern;...privatestaticfinalPattern SPACE =Pattern.compile(" ");String[] arr = SPACE.split(str);// str is the string to be split
Isso replaceAll("^\\s+","")salvou o meu dia. Isso funcionou para o meu caso. Obrigado
Kostas Asargiotakis
2
Exemplo muito simples abaixo:
Espero que ajude.
String str ="Hello I'm your String";String[] splited = str.split(" ");
var splited = str.split(" ");
var splited1=splited[0];//Hello
var splited2=splited[1];//I'm
var splited3=splited[2];//your
var splited4=splited[3];//String
Agora você tem uma lista de strings (o que é sem dúvida melhor que um array); se você precisar de uma matriz, poderá fazeroutput.toArray(new String[0]);
fork
link próximo ao canto superior esquerdo.Respostas:
O que você tem deve funcionar. Se, no entanto, os espaços fornecidos tiverem como padrão ... outra coisa? Você pode usar o regex de espaço em branco:
Isso fará com que qualquer número de espaços consecutivos divida sua sequência em tokens.
Como observação, não tenho certeza de que "dividido" seja uma palavra :) Eu acredito que o estado de ser vítima de uma divisão também é "dividido". É uma daquelas coisas gramaticais complicadas :-) Não tente ser exigente, apenas imaginei que eu a passaria adiante!
fonte
Embora a resposta aceita seja boa, lembre-se de que você terminará com uma sequência vazia à esquerda se a sequência de entrada começar com um espaço em branco. Por exemplo, com:
O resultado será:
Então, você pode aparar sua string antes de dividi-la:
fonte
Acredito que colocar uma expressão regular entre parênteses str.split deve resolver o problema. O método Java String.split () é baseado em expressões regulares, portanto, o que você precisa é:
fonte
Use
Stringutils.split()
para dividir a corda por ritmos brancos. Por exemplo,StringUtils.split("Hello World")
retorna "Olá" e "Mundo";Para resolver o caso mencionado, usamos o método split como este
quando imprimirmos a matriz dividida, a saída será:
Olá
Eu estou
seu
Corda
Para um exemplo completo de demonstração, verifique aqui
fonte
Experimentar
http://download.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html
fonte
se de alguma forma você não quiser usar o método Split, então você pode usar a classe StringTokenizer em Java como ..
fonte
Tente este
fonte
Uma maneira alternativa seria:
Vi aqui
fonte
OK, então precisamos dividir, já que você já recebeu a resposta que eu generalizaria.
Se você deseja dividir qualquer sequência por espaços, delimite (caracteres especiais).
Primeiro, remova o espaço à esquerda, pois eles criam a maioria dos problemas.
Primeiro remova o espaço inicial que pode ser espaço, tabulação etc.
Agora, se você deseja dividir por espaço ou qualquer caractere especial.
Mas como w contém [a-zA-Z_0-9], se você deseja dividir por sublinhado (_), use
fonte
replaceAll("^\\s+","")
salvou o meu dia. Isso funcionou para o meu caso. ObrigadoExemplo muito simples abaixo:
Espero que ajude.
fonte
você pode separar as cordas usando o código abaixo
fonte
Aqui está um método para aparar uma String que possui um espaço em branco "," ou
fonte
Como já faz um tempo desde que essas respostas foram postadas, aqui está outra maneira mais atual de fazer o que é pedido:
Agora você tem uma lista de strings (o que é sem dúvida melhor que um array); se você precisar de uma matriz, poderá fazer
output.toArray(new String[0]);
fonte
Não apenas espaço em branco, mas minha solução também resolve os caracteres invisíveis.
fonte
Simples de cuspir string por espaço
fonte