Eu tenho o seguinte código simples escrito em Swift 3:
let str = "Hello, playground"
let index = str.index(of: ",")!
let newStr = str.substring(to: index)
No Xcode 9 beta 5, recebo o seguinte aviso:
'
substring(to:)
' está obsoleto: use oString
índice de fatiamento com um operador 'intervalo parcial de'.
Como esse índice de faturamento com intervalo parcial pode ser usado no Swift 4?
Respostas:
Você deve deixar um lado vazio , daí o nome "intervalo parcial".
O mesmo significa intervalo parcial para os operadores, apenas deixe o outro lado vazio:
Lembre-se de que esses operadores de intervalo retornam a
Substring
. Se você deseja convertê-lo em uma string, useString
a função de inicialização:Você pode ler mais sobre as novas substrings aqui .
fonte
str[..<index]
retorna aSubstring
. Se você quisernewStr
ser umString
você tem que escrever:let newStr = "\(str[..<index])"
Substring
é provavelmente um pouco confuso, uma vez que você está realmente tentando fazer éString
inicialização:let newStr = String(str[..<index])
.Cannot subscript a value of type 'String' with an index of type 'PartialRangeUpTo<Int>'
,. Que tipos de valores devem ser usados lá?str[..<str.index(str.startIndex, offsetBy: 8)]
algo assim. Lembre-se de questr.index
é uma operação de tempo linear em função deoffsetBy
.str.prefix(8)
Conversão Substring (Swift 3) em Fatiamento de cordas (Swift 4)
Exemplos em Swift 3, 4:
fonte
Swift 5, 4
Uso
Código
fonte
Mais curto em Swift 4/5:
fonte
A conversão do seu código para o Swift 4 também pode ser feita desta maneira:
Você pode usar o código abaixo para ter uma nova string:
fonte
substring (from: index) Convertido em [index ...]
Verifique a amostra
fonte
Swift5
(Método de substring do Java):
Uso:
fonte
from
parato-1
, por exemplo,"Hello".substring(1,4)
retorna "ell"). Com uma pequena modificação (startIndex..<endIndex
), esta é a melhor solução que encontrei até agora e faz exatamente isso com apenas algumas linhas de código.Algumas extensões úteis:
fonte
Exemplo de
uppercasedFirstCharacter
propriedade de conveniência no Swift3 e Swift4.A propriedade
uppercasedFirstCharacterNew
demonstra como usar o índice de fatiamento de String no Swift4.fonte
Você pode criar seu método subString personalizado usando a extensão da classe String, como abaixo:
fonte
Criando SubString (prefixo e sufixo) a partir de String usando o Swift 4:
Resultado
Se você deseja gerar uma substring entre 2 índices, use:
fonte
Eu escrevi uma extensão de string para substituir 'String: subString:'
PS: Os opcionais são forçados a desembrulhar. Adicione verificação de segurança de tipo sempre que necessário.
fonte
Ao programar, geralmente tenho cordas com A-Za-z e 0-9. Não há necessidade de ações difíceis do Índice. Esta extensão é baseada nas funções simples esquerda / média / direita.
fonte
com esse método, você pode obter um intervalo específico de strings. você precisa passar o índice inicial e depois desse número total de caracteres que deseja.
fonte
Esta é a minha solução, sem aviso, sem erros, mas perfeita
fonte
encodedOffset
é considerado prejudicial e será preterido .Espero que isso ajude um pouco mais: -
Se você deseja uma substring após algum índice específico.
Se você deseja uma substring após remover alguma string no final.
você também pode criar índices com o seguinte código: -
fonte
Espero que seja útil.
fonte
Você pode tentar dessa maneira e obterá resultados adequados.
fonte