Creo que todos usan a menudo el método dividido de cadena, pero ¿has encontrado las siguientes situaciones:
Todos piensan en cuál es el siguiente resultado de ejecución del código
Public static void main (string [] args) {// tODO AUTO-GENERATD Método Strip String Str1 = "A, B, C, A"; , b, c ,,, ""; "" "", "); Longitud str3: "+"+ s3.length);}
Resultados de la ejecución:
¿Por qué aparece este resultado?
Solución:
Al ver la API, descubrimos que nuestro método dividido comúnmente se transmite por 0 por defecto.
Public static void main (string [] args) {// tODO AUTO-GENERATD Método Strip String Str1 = "A, B, C, A"; , b, c ,,, ""; Split (",", -1); "Str3 Longitud:"+S3.Length);}
Después de encontrar la API, descubrí que en la clase de cadena, hay dos métodos de carga pesada divididas
1. Public String [] Split (String Regex)
Estas cadenas se dividen de acuerdo con la expresión regular dada.
El papel de este método es como usar una expresión dada y limitar el parámetro 0 para llamar al método de división de dos parámetros. Por lo tanto, la matriz no incluye la cadena final.
Por ejemplo, la cadena "boo: y: foo" puede generar los siguientes resultados:
Resultados de Regex
: {"Boo", "y", "foo"} o {"b", "", ": y: f"}
parámetro:
REGEX -Ley FIJA DE RETROBRACIÓN REGILITIVO DE LA EXPRESIÓN:
La matriz de cadenas, que se tira de acuerdo con la coincidencia de la expresión de expresión regular para dividir esta cadena:
PatternsyntaxException: si la gramática en la expresión regular no es válida
2. Public String [] Split (String Regex, Int Limit)
Estas cadenas se dividen de acuerdo con la expresión regular dada por la coincidencia.
La matriz devuelta por este método contiene la subtracción de esta cadena. La subpaja en la matriz se organiza en el orden en que aparecen en esta cadena. Si la expresión no coincide con ninguna parte de la entrada, la matriz de ingresos solo tiene un elemento, es decir, esta cadena.
Limite las aplicaciones del modo de control de parámetros, afectando así la longitud de la matriz. Si este límite n es mayor que 0, el modo se usará la mayoría de N -on, y la longitud de la matriz no será mayor que n, y el último elemento de la matriz contendrá todas las entradas más allá del límite de coincidencia final. Si N no es positivo, el modo se usará tanto como sea posible, y la matriz puede ser cualquier longitud. Si n es 0, entonces el modo se usará tanto como sea posible, la matriz puede ser de longitud y se descartará la cadena final.
Por ejemplo, la cadena "boo: y: foo" puede generar los siguientes resultados con estos parámetros:
Resultados de RegexLimit
: 2 {"boo", "y: foo"}: 5 {"boo", "y", "foo"}: -2 {"boo", "y", "foo"} o 5 {"b" "", ": y: f", "", "} o -2 {" b "," ",": y: f "," ","} o 0 {"b", "": y:: F"}
La forma de str.split (regex, n) que llama a este método es exactamente la misma que los resultados producidos por las siguientes expresiones:
Pattern.compile (regex) .split (str, n)
parámetro:
Expresión regular de regex -definición
Límite de umbral de resulta, como se describió anteriormente
devolver:
La matriz de cadenas, se determina de acuerdo con la coincidencia de la expresión de expresión regular.
Tirar:
PatternsyntaxException: si la gramática en la expresión regular no es válida