Swiftで文字列が別の文字列を含んでいるか確認する方法
Swiftである文字列に別の文字列が含まれているかどうかを確認するには、2つの異なる文字列が必要です。1つは検索対象となる文字列、もう1つはその中に特定の文字列が含まれているかを調べる元となる文字列です。
ここでは、確認したい文字列を「point」、全体の文字列を「TutorialsPoint」、そして別の文字列として「one two three」を使用して説明します。Playgroundでこれらの文字列を使って実際に確認してみましょう。
この確認は、以下に示す2つの方法で行うことができます。まずは3つの異なる文字列を作成します。
var completeStr1 = "Tutorials point" var completeStr2 = "one two three" var stringToCheck = "point"
方法1:containsメソッドを使う
この方法では、String型のcontainsメソッドを使用して、ある文字列が別の文字列の中に存在するかどうかを確認します。文字列が存在する場合はtrueを返し、存在しない場合はfalseを返します。
if completeStr1.contains(stringToCheck) {
print("contains")
} else {
print("does not contain")
}
方法2:range(of:)メソッドを使う
この方法では、文字列の範囲(range)を確認します。範囲がnilの場合、検索対象の文字列は存在しないことを意味します。nilでない場合は、その文字列が存在することを意味します。
if completeStr2.range(of: stringToCheck) != nil {
print("contains")
} else {
print("does not contain")
}
上記のコードを実行すると、以下のような出力が得られます。

同様に、別の例でもこれらのメソッドを試してみましょう。特殊文字を含む文字列に対しても、同じ方法で確認することができます。
var str1 = "12312$$33@"
var str2 = "%%"
var str3 = "$$"
if str1.contains(str2) {
print("contains")
} else {
print("does not contain")
}
if str1.range(of: str3) != nil {
print("contains")
} else {
print("does not contain")
}
これにより、以下のような結果が出力されます。

-
Swiftで文字列に特殊文字が含まれているか判定する2つの方法
Swiftで文字列に特殊文字が含まれているかどうかを確認したい場合、if文やswitch文による条件分岐でも実現できますが、その場合は膨大な条件式を記述する必要があり、コーディングにも実行速度にも大きな負担となってしまいます。そこで本記事では、正規表現を使う方法と、Swift標準のCharacterSetを活用する方法の2通りを、具体的なコード例とともにわかりやすく解説します。 方法1:正規表現を使って判定する まずはString型のextensionを作成し、特殊文字の有無を判定するプロパティを追加しましょう。 extension String { var containsSpeci
-
【Python】文字列を繰り返して別の文字列を作れるか判定する方法
2つの文字列 s と t が与えられたとします。このとき、s を何回連結すると t と同じ文字列を作れるかを求めます。s の繰り返しでは t を生成できない場合は -1 を返します。例えば、入力が s = tom、t = tomtomtom の場合、「tom」を3回連結すれば「tomtomtom」になるため、出力は 3 となります。解法のアプローチこの問題は以下の手順で解くことができます。t の長さが s の長さで割り切れない場合は、-1 を返すcnt に「t の長さ ÷ s の長さ」の商を代入するs を cnt 回繰り返して新しい文字列を作るその結果が t と一致する場合は cnt を返す一