Acredito que todos costumam usar o método dividido de string, mas você encontrou as seguintes situações:
Todos pensam sobre qual é o seguinte resultado de execução de código
Public static void main (string [] args) {// TODO Método Auto-Generatd String Str1 = "A, B, C, A"; , b, c ,,, ""; "" "" " Comprimento str3: "+"+ s3.Length);}
Resultados da execução:
Por que esse resultado aparece?
Solução:
Ao visualizar a API, descobrimos que nosso método de divisão comumente usado é transmitido por 0 por padrão.
Public static void main (string [] args) {// TODO Método Auto-Generatd String Str1 = "A, B, C, A"; , B, C ,, ""; Split (",", -1); "Str3 Comprimento:"+S3.Length);}
Depois de encontrar a API, descobri que na classe String, existem dois métodos de carga pesada dividida
1. Public String [] Split (String regex)
Essas cordas são divididas de acordo com a expressão regular dada.
O papel desse método é como usar um determinado parâmetro de expressão e limite para chamar o método de divisão de dois parâmetro. Portanto, a matriz não inclui a string final.
Por exemplo, a string "boo: e: foo" pode gerar os seguintes resultados:
Resultados da Regex
: {"Boo", "e", "foo"} o {"b", "", ": e: f"}
parâmetro:
Lei de Regex -Expressão regular Retornos:
A matriz de string, que é jogada de acordo com a correspondência da expressão regular de expressão para dividir esta string:
PatternSyntaxException -Se a gramática na expressão regular é inválida
2. Public String [] Split (String regex, int limite)
Essas cordas são divididas de acordo com a expressão regular dada pela correspondência.
A matriz retornada por este método contém a sub -cordão dessa sequência. A subsistragem na matriz é organizada na ordem em que aparecem nesta string. Se a expressão não corresponder a nenhuma parte da entrada, a matriz de renda possui apenas um elemento, ou seja, essa string.
Limite os aplicativos do modo de controle de parâmetros, afetando assim o comprimento da matriz. Se esse limite n for maior que 0, o modo será usado mais n -Ence e o comprimento da matriz não será maior que N, e o último item da matriz conterá todas as entradas além do limite final de correspondência. Se n não for positivo, o modo será usado o máximo possível e a matriz pode ter qualquer comprimento. Se n for 0, o modo será usado o máximo possível, a matriz pode ter qualquer comprimento e a sequência final será descartada.
Por exemplo, a string "boo: e: foo" pode gerar os seguintes resultados com estes parâmetros:
Resultados de regexlimit
: 2 {"boo", "e: foo"}: 5 {"boo", "e" "foo"}: -2 {"boo", "e" "foo"} o 5 {"b" "", ": e: f", "", "} o -2 {" b "," ",": e: f "," ","} o 0 {"b", "": e: f "}
A forma de str.split (regex, n) que chama esse método é exatamente o mesmo que os resultados produzidos pelas seguintes expressões:
Pattern.compile (regex) .split (str, n)
parâmetro:
Regex -Definition Expressão regular
Limite -resultação, como descrito acima
retornar:
A matriz de strings é determinada de acordo com a correspondência da expressão regular de expressão.
Jogando fora:
PatternSyntaxException -Se a gramática na expressão regular é inválida