2016-09-04 9 views
2

私は非ラテン文字セットに問題があります.SubstringWithRangeを実行する前にRangeが範囲内にあることを確認する必要があります。これは本当に簡単ですが、私はこれを行う方法を見つけることができません。String.substringWithRangeは境界内にありますか?

は、範囲を考える:

let lastCharRange = currentString.endIndex.predecessor() ..< currentString.endIndex 

はどのようにしてチェックすることができます。

let lastExpected    = expectedString.substringWithRange(lastCharRange) 

は境界内にありますか?

+0

スニペットは、あるストリングのインデックスを別のストリングに使用しようとしていることを示しています。あれは正しいですか?それは合法ではない。インデックスは、それらを生成したStringに対してのみ有効です。 –

+0

はい、それは正しいです、そして、おそらく私はこの問題を抱えています。私には瞬間をつけてください。私は何をしようとしているのかを表現するために質問を更新します。 – glenstorey

+0

実際には、私がやろうとしていることは簡単です。この質問に対する正解は、合法ではないということです。 @ジョシュキャスウェルあなたは答えとしてそれを入れたいですか? – glenstorey

答えて

2

インデックスは、それらを生成したStringと密接に結びついています(実際にはStringCharacterViewになります)。これはCollectionTypeです。これは一般的にコレクションに当てはまります。

Indexから入手したStringは別のStringには使用できません。

何をしているかによって、最初から部分文字列を取得してから2番目を検索する必要があります。 2つのStringの 'CharacterView'を取得し、コレクションベースのインターフェイス(expectedString.characters.lastなど)を使用してそれらを処理することもできます。

関連する問題