伊藤  直子

伊藤 直子

1654157160

KotlinでcompareTo()およびその他の文字列アクションを使用する

Kotlinは静的に型付けされたプログラミング言語です。つまり、すべての変数に1つの固定型が必要です。Kotlinにはさまざまなタイプが組み込まれており、そのうちの1つがStringタイプです。

この型を使用してString、二重引用符で囲まれた文字のシーケンスである文字列値を格納します。次に、これらの保存された文字列値をさまざまな方法で処理できます。

Kotlinストリングとその操作方法について詳しく学びましょう。 

Kotlinの文字列とは何ですか?

Kotlin文字列をよりよく理解するための例を見てみましょう。

val firstName: String = "Kingsley"    

ここで、変数の名前は、、firstNameタイプはString、、二重引用符で囲まれた値""はですKingsley

変数の値をKingsleyすぐに等しく割り当てるので、型の定義をなくすことができます。結果として、以下の変数も同様に有効です。

val firstName = "Kingsley"    

この便利なKotlin機能は、型推論と呼ばれます。基本的には、コンパイラが変数の型を自動的に推測できることを意味するので、具体的に指定する必要はありません。

Kotlinでの文字列の操作

文字列の作成に使用するたびに、新しいStringオブジェクトが初期化されます。""このオブジェクトは、文字列値の操作に役立ついくつかの組み込みプロパティとメソッドを提供します。

プロパティは、長さ、文字列内の特定の文字の位置など、特定の文字列値に関する情報を提供します。

メソッドは、オブジェクトを呼び出してその値を直接操作できる関数です。たとえば、文字列のメソッドを呼び出して、元の文字列のサブセットを返すことができます。

Kotlinで一般的に使用される文字列アクションを実行する方法を見ていきましょう。

Kotlin文字列の個々の文字をインデックスで取得する

文字列内の各文字は、単なる整数値であるインデックスによって表されます。ほとんどのプログラミング言語と同様に、0からインデックスのカウントを開始します。文字列の最初の文字のインデックスは0、2番目の文字のインデックスは1というようになります。

次のように、一意のインデックスを使用して文字列内の文字を取得できます。

fun main() {
    val greeting = "Hi Kingsley"       

    println(greeting[0]) // H
    println(greeting[1]) // i
    println(greeting[2]) // whitespace
    println(greeting[3]) // K
}

Kotlinで文字列が空かどうかを確認する

メソッドを使用して、変数に空の文字列値があるかどうかを確認できますisEmpty()

空の文字列をチェックする例を次に示します。

fun main() {
    val emptyStr = ""       

    println(emptyStr.isEmpty()) // true
}

isEmpty()true文字列が空で、文字列に文字が含まれている場合のブール値を返しますfalse

Kotlinで文字列の長さを取得する

指定された長さを超えるすべての名前を省略したいプログラムがあるとします。そのためには、最初に各文字列の長さを取得する必要があります。

lengthプロパティは、文字列内に存在する文字数を返します。

fun main() {
    val greeting = "Hi Kingsley"       

    println(greeting.length) // 11
}

空白を含め、文字列内のすべての文字がカウントされます。

Kotlinで文字列サブセットを取得する

大きな文字列の一部を切り取るには、Kotlinのsubstring()方法を使用します。

substring()指定された開始インデックスと終了インデックスの間にある文字列の部分を抽出します。以下の例では、6番目のインデックスと11番目のインデックスの間のすべての文字を抽出しています。

fun main() {
    val greeting = "Hello Worldd"       

    println(greeting.substring(6, 11)) // World
}

6番目のインデックスの文字は含まれていませんが、11番目のインデックスの文字は含まれていることに注意してください。

Kotlinで文字列を結合する

文字列の連結とは、2つ以上の文字列がマージされることです。2つ以上の文字列をマージする簡単な方法は、加算+演算子を使用することです。

fun main() {
    val firstName = "Kingsley"   
    val lastName = "Ubah"   
    val fullName = firstName + lastName

    println(fullName) // KingsleyUbah
}

両方の文字列を空白またはその他の文字で区切ることができます。

fun main() {
    val firstName = "Kingsley"   
    val lastName = "Ubah"   
    val fullName = firstName + " " + lastName

    println(fullName) // Kingsley Ubah
}

+より大きな文字列内に変数を埋め込むために使用することもできます。

fun main() {
    val customer = "Kingsley"
    val totalAmount = 50
    val items = 6

    val msg = "Hi " + customer + ", your cart has a total of " + items + " items and they amount to " + totalAmount + " dollars"

    println(msg)
}

を繰り返し連結+すると、コードがすぐに読みにくくなる可能性があることに注意してください。テンプレート文字列を使用して、この問題を回避できます。

テンプレート文字列を使用すると、変数をメイン文字列に直接埋め込むことができます。テンプレート文字列を使用すると、不足しているスペースを簡単に見つけることができます。

$テンプレート文字列に変数を含めるには、次の例に示すように、各変数名の前にドル記号を付けます。

fun main() {
    val customer = "Kingsley"
    val totalAmount = 50
    val items = 6

    val msg = "Hi $customer, your cart has a total of $items items and they amount to $totalAmount dollars"

    println(msg) 
}

テンプレート文字列は、Kotlinでコードをよりクリーンで読みやすくするための多くの方法の1つです。

比較演算子を使用してKotlin文字列を比較する

Kotlinの比較演算子を使用して、2つ以上の文字列オブジェクトが構造的または参照的に等しいかどうかを確認できます。

構造比較では、2つ以上のオブジェクトが同じ値であるかどうかを確認します。この種の等号をチェックするために、二重等号を使用し==ます。基本的な例は次のとおりです。

fun main() {
    val a = "Hello"
    val b = "Hallo"
    val c = "Hello"

    println(a == b)   // returns false
    println(a == c)   // returns true

}

aとは両方とも同じ値であるため、それらをreturnscと比較します。==true

比較では大文字と小文字が区別されることに注意してください。これは、大文字と小文字が異なるものとして解釈されるため、文字列「hello」は「Hello」と同じではないことを意味します。

参照比較は、2つ以上の変数が同じオブジェクトを指しているかどうかをチェックします。参照比較のために、以下の例に示すように、トリプル等号を使用し===ます。

fun main() {
    val str_1 = "Hello"    
    val str_2 = "Hello"
    val str_3 = "Hello World"

    println(str_1 === str_2) // true     
    println(str_1 === str_3) // false
}

2番目の割り当てが行われると、Java仮想マシン(JVM)が文字列「Hello」がプール内にすでに存在することを検出するため、str_1との間の参照比較がstr_2返されます。true

2番目の変数が同じ文字列オブジェクト「Hello」を指すようにすると、メモリを節約できます。

ただし、値が異なるため、JVMは3番目の変数割り当てに個別のメモリを割り当てます。したがって、との間の比較はstr_1str_3返しますfalse

関数を使用してequals()Kotlin文字列を比較する

このequals()関数は、Javaのバックグラウンドを持っている人にはおなじみのものでなければなりません。==前に見たと同様に、 equals()2つのオブジェクトが同じコンテンツを持っているかどうかをチェックします。

この簡単な方法を使用して文字列を比較する例を見てみましょう。以下では、4つの文字列変数を定義しました。4つのうち、とだけac同じです。

fun main() {
    val a = "Hello"
    val b = "Hallo"
    val c = "Hello"
    val d = "hello"

    println(a.equals(b))    // returns false
    println(a.equals(c))     // returns true
    println(a.equals(d, true))     // returns true
}

equals()チェックではデフォルトで大文字と小文字が区別されるため、文字列「hello」は「Hello」と同じではないことに注意してください。

ただし、とは異なり、in==の2番目の引数を渡すことで大文字と小文字の区別を削除することを選択できます。これを最後の行で行い、「Hello」と「hello」を比較すると、チェックが返されました。trueequals()true

関数を使用してcompareTo()Kotlin文字列を比較する

Kotlinの文字列を。と比較することもできますcompareTo()。このメソッドの基本的な構文は次のとおりです。

mainStr.compareTo(otherStr)

前のメソッドはブール値(trueまたはfalse)をcompareTo()返しますが、整数を返します。

  • 0メイン文字列と他の文字列が等しい場合に返されます
  • 他の文字列のASCII値がメイン文字列よりも大きい場合は、負の数を返します
  • 他の文字列のASCII値がメイン文字列よりも小さい場合は、正の数を返します
// Example 1
fun main() {
val a = "Hallo"
val b = "Hello"

println(a.compareTo(b))    // returns -4

}

// Example 2
fun main() {
val a = "Hello"
val b = "Hallo"

println(a.compareTo(b))    // returns 4

}

// Example 3
fun main() {
val a = "Hello"
val b = "Hello"

println(a.compareTo(b))    // returns 0

}

compareTo()文字列の比較では、デフォルトで大文字と小文字が区別されます。と同様にequals()、引数を渡すことでこの動作をオーバーライドできますtrue

次の例では、大文字と小文字の区別を明示的に有効にしたため、最初のチェックで負の値が返されます。0大文字と小文字の区別を無効にしたため、2番目のチェックが返されます。

fun main() {
    val upper: String = "Hello"
    val lower: String = "hello"


    println(upper.compareTo(lower, false))    // returns false (-32)
    println(upper.compareTo(lower, true))     // returns true (0)

}

Kotlinでの文字列の置き換え

このString.replace()メソッドは、Kotlinの文字列を置き換えるために使用されます。基本的な構文は次のとおりです。

mainString.replace(oldValue, newValue)

このメソッドは、メイン文字列内で提供された古い値の出現をチェックし、すべてのインスタンスを新しい値に置き換えます。次に例を示します。

fun main() {
    var mainStr = "Replacing Strings in Python"
    val oldValue = "Python"
    val newValue = "Kotlin"

    val newStr = mainStr.replace(oldValue, newValue)

    println(newStr) // Replacing Strings in Kotlin
}

大文字と小文字の区別を無効にするにtrueは、3番目の引数として渡します。これを実際に見てみましょう:

var mainStr = "Replacing Strings in python"    
    val oldValue = "Python"
    val newValue = "Kotlin"

    var newStr = mainStr.replace(oldValue, newValue, true)
    println(newStr) // Replacing Strings in Kotlin

ご覧のとおり、「python」と「Python」の大文字と小文字の違いは無視されています。

Kotlinでの文字列の並べ替え

toCharArray()Kotlinでは、メソッド、、、sorted()およびjoinToString()文字列を連続して実行することにより、文字列をアルファベット順に並べ替えることができます。

文字列「elephant」をアルファベット順に並べ替えたいとします:「aeehlnpt」。まず、メソッドを使用して文字列を配列に変換しますtoCharArray()。次に、を使用sorted()して配列を並べ替えます。最後に、を使用joinToString()して配列を文字列に戻します。

fun main() {
    val str = "elephant"
    val arr = str.toCharArray()
    val sorted = arr.sorted().joinToString("")
    println(sorted) // aeehlnpt
}

すべてをカスタム関数内にラップして、文字列を並べ替えるときはいつでもその関数を呼び出すことができます。

fun sortByAlpha(str: String) {       
    val arr = str.toCharArray()
    println(arr.sorted().joinToString(""))

}
fun main() {
    sortByAlpha("elephant")
}

概要

このチュートリアルでは、Kotlin文字列と、いくつかの一般的なKotlin文字列操作を実行する方法について学習しました。これには、文字列の長さの取得、文字列の並べ替え、文字列の結合、文字列の比較、文字列テンプレートを使用した文字列の読み取り可能化が含まれます。

Kotlinストリングに関するこの包括的なガイドがお役に立てば幸いです。さらに詳しく知りたい場合は、Kotlinが、Kotlin拡張機能などの関連する概念をカバーするために、この投稿で確認したプロパティとメソッドを超えた文字列に関する広範なドキュメントを提供します。

よい一週間を。

このストーリーは、もともとhttps://blog.logrocket.com/how-use-compareto-other-string-actions-kotlin/で公開されました

#kotlin 

What is GEEK

Buddha Community

KotlinでcompareTo()およびその他の文字列アクションを使用する
伊藤  直子

伊藤 直子

1654157160

KotlinでcompareTo()およびその他の文字列アクションを使用する

Kotlinは静的に型付けされたプログラミング言語です。つまり、すべての変数に1つの固定型が必要です。Kotlinにはさまざまなタイプが組み込まれており、そのうちの1つがStringタイプです。

この型を使用してString、二重引用符で囲まれた文字のシーケンスである文字列値を格納します。次に、これらの保存された文字列値をさまざまな方法で処理できます。

Kotlinストリングとその操作方法について詳しく学びましょう。 

Kotlinの文字列とは何ですか?

Kotlin文字列をよりよく理解するための例を見てみましょう。

val firstName: String = "Kingsley"    

ここで、変数の名前は、、firstNameタイプはString、、二重引用符で囲まれた値""はですKingsley

変数の値をKingsleyすぐに等しく割り当てるので、型の定義をなくすことができます。結果として、以下の変数も同様に有効です。

val firstName = "Kingsley"    

この便利なKotlin機能は、型推論と呼ばれます。基本的には、コンパイラが変数の型を自動的に推測できることを意味するので、具体的に指定する必要はありません。

Kotlinでの文字列の操作

文字列の作成に使用するたびに、新しいStringオブジェクトが初期化されます。""このオブジェクトは、文字列値の操作に役立ついくつかの組み込みプロパティとメソッドを提供します。

プロパティは、長さ、文字列内の特定の文字の位置など、特定の文字列値に関する情報を提供します。

メソッドは、オブジェクトを呼び出してその値を直接操作できる関数です。たとえば、文字列のメソッドを呼び出して、元の文字列のサブセットを返すことができます。

Kotlinで一般的に使用される文字列アクションを実行する方法を見ていきましょう。

Kotlin文字列の個々の文字をインデックスで取得する

文字列内の各文字は、単なる整数値であるインデックスによって表されます。ほとんどのプログラミング言語と同様に、0からインデックスのカウントを開始します。文字列の最初の文字のインデックスは0、2番目の文字のインデックスは1というようになります。

次のように、一意のインデックスを使用して文字列内の文字を取得できます。

fun main() {
    val greeting = "Hi Kingsley"       

    println(greeting[0]) // H
    println(greeting[1]) // i
    println(greeting[2]) // whitespace
    println(greeting[3]) // K
}

Kotlinで文字列が空かどうかを確認する

メソッドを使用して、変数に空の文字列値があるかどうかを確認できますisEmpty()

空の文字列をチェックする例を次に示します。

fun main() {
    val emptyStr = ""       

    println(emptyStr.isEmpty()) // true
}

isEmpty()true文字列が空で、文字列に文字が含まれている場合のブール値を返しますfalse

Kotlinで文字列の長さを取得する

指定された長さを超えるすべての名前を省略したいプログラムがあるとします。そのためには、最初に各文字列の長さを取得する必要があります。

lengthプロパティは、文字列内に存在する文字数を返します。

fun main() {
    val greeting = "Hi Kingsley"       

    println(greeting.length) // 11
}

空白を含め、文字列内のすべての文字がカウントされます。

Kotlinで文字列サブセットを取得する

大きな文字列の一部を切り取るには、Kotlinのsubstring()方法を使用します。

substring()指定された開始インデックスと終了インデックスの間にある文字列の部分を抽出します。以下の例では、6番目のインデックスと11番目のインデックスの間のすべての文字を抽出しています。

fun main() {
    val greeting = "Hello Worldd"       

    println(greeting.substring(6, 11)) // World
}

6番目のインデックスの文字は含まれていませんが、11番目のインデックスの文字は含まれていることに注意してください。

Kotlinで文字列を結合する

文字列の連結とは、2つ以上の文字列がマージされることです。2つ以上の文字列をマージする簡単な方法は、加算+演算子を使用することです。

fun main() {
    val firstName = "Kingsley"   
    val lastName = "Ubah"   
    val fullName = firstName + lastName

    println(fullName) // KingsleyUbah
}

両方の文字列を空白またはその他の文字で区切ることができます。

fun main() {
    val firstName = "Kingsley"   
    val lastName = "Ubah"   
    val fullName = firstName + " " + lastName

    println(fullName) // Kingsley Ubah
}

+より大きな文字列内に変数を埋め込むために使用することもできます。

fun main() {
    val customer = "Kingsley"
    val totalAmount = 50
    val items = 6

    val msg = "Hi " + customer + ", your cart has a total of " + items + " items and they amount to " + totalAmount + " dollars"

    println(msg)
}

を繰り返し連結+すると、コードがすぐに読みにくくなる可能性があることに注意してください。テンプレート文字列を使用して、この問題を回避できます。

テンプレート文字列を使用すると、変数をメイン文字列に直接埋め込むことができます。テンプレート文字列を使用すると、不足しているスペースを簡単に見つけることができます。

$テンプレート文字列に変数を含めるには、次の例に示すように、各変数名の前にドル記号を付けます。

fun main() {
    val customer = "Kingsley"
    val totalAmount = 50
    val items = 6

    val msg = "Hi $customer, your cart has a total of $items items and they amount to $totalAmount dollars"

    println(msg) 
}

テンプレート文字列は、Kotlinでコードをよりクリーンで読みやすくするための多くの方法の1つです。

比較演算子を使用してKotlin文字列を比較する

Kotlinの比較演算子を使用して、2つ以上の文字列オブジェクトが構造的または参照的に等しいかどうかを確認できます。

構造比較では、2つ以上のオブジェクトが同じ値であるかどうかを確認します。この種の等号をチェックするために、二重等号を使用し==ます。基本的な例は次のとおりです。

fun main() {
    val a = "Hello"
    val b = "Hallo"
    val c = "Hello"

    println(a == b)   // returns false
    println(a == c)   // returns true

}

aとは両方とも同じ値であるため、それらをreturnscと比較します。==true

比較では大文字と小文字が区別されることに注意してください。これは、大文字と小文字が異なるものとして解釈されるため、文字列「hello」は「Hello」と同じではないことを意味します。

参照比較は、2つ以上の変数が同じオブジェクトを指しているかどうかをチェックします。参照比較のために、以下の例に示すように、トリプル等号を使用し===ます。

fun main() {
    val str_1 = "Hello"    
    val str_2 = "Hello"
    val str_3 = "Hello World"

    println(str_1 === str_2) // true     
    println(str_1 === str_3) // false
}

2番目の割り当てが行われると、Java仮想マシン(JVM)が文字列「Hello」がプール内にすでに存在することを検出するため、str_1との間の参照比較がstr_2返されます。true

2番目の変数が同じ文字列オブジェクト「Hello」を指すようにすると、メモリを節約できます。

ただし、値が異なるため、JVMは3番目の変数割り当てに個別のメモリを割り当てます。したがって、との間の比較はstr_1str_3返しますfalse

関数を使用してequals()Kotlin文字列を比較する

このequals()関数は、Javaのバックグラウンドを持っている人にはおなじみのものでなければなりません。==前に見たと同様に、 equals()2つのオブジェクトが同じコンテンツを持っているかどうかをチェックします。

この簡単な方法を使用して文字列を比較する例を見てみましょう。以下では、4つの文字列変数を定義しました。4つのうち、とだけac同じです。

fun main() {
    val a = "Hello"
    val b = "Hallo"
    val c = "Hello"
    val d = "hello"

    println(a.equals(b))    // returns false
    println(a.equals(c))     // returns true
    println(a.equals(d, true))     // returns true
}

equals()チェックではデフォルトで大文字と小文字が区別されるため、文字列「hello」は「Hello」と同じではないことに注意してください。

ただし、とは異なり、in==の2番目の引数を渡すことで大文字と小文字の区別を削除することを選択できます。これを最後の行で行い、「Hello」と「hello」を比較すると、チェックが返されました。trueequals()true

関数を使用してcompareTo()Kotlin文字列を比較する

Kotlinの文字列を。と比較することもできますcompareTo()。このメソッドの基本的な構文は次のとおりです。

mainStr.compareTo(otherStr)

前のメソッドはブール値(trueまたはfalse)をcompareTo()返しますが、整数を返します。

  • 0メイン文字列と他の文字列が等しい場合に返されます
  • 他の文字列のASCII値がメイン文字列よりも大きい場合は、負の数を返します
  • 他の文字列のASCII値がメイン文字列よりも小さい場合は、正の数を返します
// Example 1
fun main() {
val a = "Hallo"
val b = "Hello"

println(a.compareTo(b))    // returns -4

}

// Example 2
fun main() {
val a = "Hello"
val b = "Hallo"

println(a.compareTo(b))    // returns 4

}

// Example 3
fun main() {
val a = "Hello"
val b = "Hello"

println(a.compareTo(b))    // returns 0

}

compareTo()文字列の比較では、デフォルトで大文字と小文字が区別されます。と同様にequals()、引数を渡すことでこの動作をオーバーライドできますtrue

次の例では、大文字と小文字の区別を明示的に有効にしたため、最初のチェックで負の値が返されます。0大文字と小文字の区別を無効にしたため、2番目のチェックが返されます。

fun main() {
    val upper: String = "Hello"
    val lower: String = "hello"


    println(upper.compareTo(lower, false))    // returns false (-32)
    println(upper.compareTo(lower, true))     // returns true (0)

}

Kotlinでの文字列の置き換え

このString.replace()メソッドは、Kotlinの文字列を置き換えるために使用されます。基本的な構文は次のとおりです。

mainString.replace(oldValue, newValue)

このメソッドは、メイン文字列内で提供された古い値の出現をチェックし、すべてのインスタンスを新しい値に置き換えます。次に例を示します。

fun main() {
    var mainStr = "Replacing Strings in Python"
    val oldValue = "Python"
    val newValue = "Kotlin"

    val newStr = mainStr.replace(oldValue, newValue)

    println(newStr) // Replacing Strings in Kotlin
}

大文字と小文字の区別を無効にするにtrueは、3番目の引数として渡します。これを実際に見てみましょう:

var mainStr = "Replacing Strings in python"    
    val oldValue = "Python"
    val newValue = "Kotlin"

    var newStr = mainStr.replace(oldValue, newValue, true)
    println(newStr) // Replacing Strings in Kotlin

ご覧のとおり、「python」と「Python」の大文字と小文字の違いは無視されています。

Kotlinでの文字列の並べ替え

toCharArray()Kotlinでは、メソッド、、、sorted()およびjoinToString()文字列を連続して実行することにより、文字列をアルファベット順に並べ替えることができます。

文字列「elephant」をアルファベット順に並べ替えたいとします:「aeehlnpt」。まず、メソッドを使用して文字列を配列に変換しますtoCharArray()。次に、を使用sorted()して配列を並べ替えます。最後に、を使用joinToString()して配列を文字列に戻します。

fun main() {
    val str = "elephant"
    val arr = str.toCharArray()
    val sorted = arr.sorted().joinToString("")
    println(sorted) // aeehlnpt
}

すべてをカスタム関数内にラップして、文字列を並べ替えるときはいつでもその関数を呼び出すことができます。

fun sortByAlpha(str: String) {       
    val arr = str.toCharArray()
    println(arr.sorted().joinToString(""))

}
fun main() {
    sortByAlpha("elephant")
}

概要

このチュートリアルでは、Kotlin文字列と、いくつかの一般的なKotlin文字列操作を実行する方法について学習しました。これには、文字列の長さの取得、文字列の並べ替え、文字列の結合、文字列の比較、文字列テンプレートを使用した文字列の読み取り可能化が含まれます。

Kotlinストリングに関するこの包括的なガイドがお役に立てば幸いです。さらに詳しく知りたい場合は、Kotlinが、Kotlin拡張機能などの関連する概念をカバーするために、この投稿で確認したプロパティとメソッドを超えた文字列に関する広範なドキュメントを提供します。

よい一週間を。

このストーリーは、もともとhttps://blog.logrocket.com/how-use-compareto-other-string-actions-kotlin/で公開されました

#kotlin