Tengo el siguiente código simple escrito en Swift 3:
let str = "Hello, playground"
let index = str.index(of: ",")!
let newStr = str.substring(to: index)
De Xcode 9 beta 5, recibo la siguiente advertencia:
'
substring(to:)
' está en desuso: utilice elString
subíndice de corte con un operador 'rango parcial desde'.
¿Cómo se puede utilizar este subíndice de corte con rango parcial en Swift 4?
Respuestas:
Debe dejar un lado vacío , de ahí el nombre de "rango parcial".
Lo mismo significa rango parcial de operadores, solo deje el otro lado vacío:
Tenga en cuenta que estos operadores de rango devuelven a
Substring
. Si desea convertirlo en una cadena, useString
la función de inicialización:Puede leer más sobre las nuevas subcadenas aquí .
fuente
str[..<index]
devuelve aSubstring
. Si quieresnewStr
ser unString
tienes que escribir:let newStr = "\(str[..<index])"
Substring
es probablemente un poco confuso, ya que lo que realmente está tratando de lograr esString
la inicialización:let newStr = String(str[..<index])
.Cannot subscript a value of type 'String' with an index of type 'PartialRangeUpTo<Int>'
. ¿Qué tipos de valores deben usarse allí?str[..<str.index(str.startIndex, offsetBy: 8)]
o algo así. Tenga en cuenta questr.index
es una operación de tiempo lineal en función deoffsetBy
.str.prefix(8)
Convertir subcadena (Swift 3) en segmentación de cadenas (Swift 4)
Ejemplos en Swift 3, 4:
fuente
Swift 5, 4
Uso
Código
fuente
Más corto en Swift 4/5:
fuente
La conversión de su código a Swift 4 también se puede hacer de esta manera:
Puede usar el siguiente código para tener una nueva cadena:
fuente
subcadena (de: índice) Convertido a [índice ...]
Revise la muestra
fuente
Swift5
(Método de subcadena de Java):
Uso:
fuente
from
porto-1
ejemplo,"Hello".substring(1,4)
devuelve "ell"). Con una pequeña modificación (startIndex..<endIndex
), esta es la mejor solución que he encontrado hasta ahora que hace exactamente eso con solo unas pocas líneas de código.Algunas extensiones útiles:
fuente
Ejemplo de
uppercasedFirstCharacter
propiedad de conveniencia en Swift3 y Swift4.La propiedad
uppercasedFirstCharacterNew
muestra cómo usar el subíndice de corte de cadenas en Swift4.fuente
Puede crear su método de subcadena personalizado usando la extensión a la clase Cadena de la siguiente manera:
fuente
Crear SubString (prefijo y sufijo) a partir de String usando Swift 4:
Salida
Si desea generar una subcadena entre 2 índices, use:
fuente
He escrito una extensión de cadena para reemplazar 'String: subString:'
PD: los opcionales se ven obligados a desenvolverse. Agregue tipo de verificación de seguridad cuando sea necesario.
fuente
Cuando programo, a menudo tengo cadenas con simplemente A-Za-z y 0-9. No es necesario realizar acciones difíciles del índice. Esta extensión se basa en las antiguas funciones simples izquierda / media / derecha.
fuente
con este método puede obtener un rango específico de cadena. Debe pasar el índice de inicio y después de ese número total de caracteres que desea.
fuente
Esta es mi solución, sin advertencia, sin errores, pero perfecta.
fuente
encodedOffset
se considera perjudicial y quedará en desuso .Espero que esto ayude un poco más: -
Si desea una subcadena después de algún índice en particular.
Si desea una subcadena después de eliminar alguna cadena al final.
También puede crear índices con el siguiente código: -
fuente
Espero que sea útil.
fuente
Puede intentarlo de esta manera y obtendrá los resultados adecuados.
fuente