Scala 文字列の共通関数

Scala の文字列は String 型であり、実際には Java にありますjava.lang.Stringよく使用される機能は次のとおりです。

1. 部分文字列-部分文字列

substring()メソッドは文字列の部分文字列を返します。

substring()メソッドには次の 2 つの形式があります。

  • substring(beginIndex: Int)beginIndex は開始インデックスであり、この形式は beginIndex から文字列の末尾までの部分文字列を取得します。
  • substring(beginIndex: Int, endIndex: Int)beginIndex は開始インデックス、endIndex は終了インデックスです。この形式は、beginIndex (beginIndex を含む) から endIndex (endIndex を除く) までの部分文字列を取得します。

ルーキー チュートリアルの次の図は、わかりやすい例です。
部分文字列 - 部分文字列コード例は次のとおりです。

val str1 = "This is text"

println("返回值 :"+str1.substring(3))
println("返回值 :"+str1.substring(2, 7))
println("返回值 :"+str1.substring(2, str1.length))

操作結果:

返回值 :s is text
返回值 :is is
返回值 :is is text

注: endIndex が文字列の範囲を超える場合、String index out of range: 20エラーが報告されます。

2. 文字列の分割 - 分割

split()このメソッドは、指定された正規表現との一致に基づいて文字列を分割し、結果は になりますArray<String>

: .、、、などのエスケープ文字を追加する必要$あり|ます: 複数の区切り文字をハイフンとして。*\\
|

split()メソッドには次の 2 つの形式があります。

  • split(regex: String)regex は正規表現の区切り文字です。
  • split(regex: String, limit: Int)regex は正規表現の区切り文字、limit は分割数です。つまり、最初の制限区切り文字のみが分割されます。
    サンプルコードは次のとおりです。
val str2 = "Welcome-to-here"

println("- 分隔符返回值 :")
str2.split("-").foreach(println)

System.out.println("- 分隔符设置分割份数返回值 :")
str2.split("-", 2).foreach(println)

val str3 = "java.lang.String"
System.out.println("转义字符返回值 :")
str3.split("\\.", 3).foreach(println)

val str4 = "acount=? and uu =? or n=?"
println("多个分隔符返回值 :")
str4.split("and|or").foreach(println)

操作結果:

- 分隔符返回值 :
Welcome
to
here
- 分隔符设置分割份数返回值 :
Welcome
to-here
转义字符返回值 :
java
lang
String
多个分隔符返回值 :
acount=? 
 uu =? 
 n=?

3. 先頭と末尾のスペースを削除します -trim

trim()このメソッドは、文字列の先頭と末尾の空白文字 (改行文字を含む) を削除するために使用されます。このメソッドには受信パラメーターがないため、括弧は省略できます。例えば:

val str3 = "\n abc 12 \n "
println(str3.trim)
println("str3.trim length:"+str3.trim.length)
println(str3)
println("str3 length:"+str3.length)

操作結果:

abc 12
str3.trim length:6

 abc 12 
 
str3 length:11

4. 数値との変換

型に応じて、文字列から数値への変換は次の方法で行うことができます。

  • Int - 整数 Integer.parseInt()
  • 長整数 - 長整数 java.lang.Long.parseLong()
  • Float - 浮動小数点型 java.lang.Float.parseFloat()
  • Double - 倍精度浮動小数点型 java.lang.Double.parseDouble()

サンプルコードは次のとおりです。

val str_int: String = "23"
val str_float: String = "233.3"

val my_int: Int = Integer.parseInt(str_int)
val my_long: Long = java.lang.Long.parseLong(str_int)
val my_float: Float = java.lang.Float.parseFloat(str_float)
val my_double: Double = java.lang.Double.parseDouble(str_float)

println(my_int)
println(my_long)
println(my_float)
println(my_double)

操作結果:

23
23
233.3
233.3

文字列の形式が正しくない場合はjava.lang.NumberFormatException例外がスローされるtry/catchことに注意してください。これは対策として考慮できます。

var odd_value: Long = 0L
try {
    
    
  odd_value = java.lang.Long.parseLong(str_float)
} catch {
    
    
  case e: NumberFormatException => {
    
    
    e.printStackTrace()
    println("Wrong format")
  }
}

完全なコード

StringTest.scala

package com.xxx

object StringTest {
    
    
  def main(args: Array[String]): Unit = {
    
    
    val str1 = "This is text"

    println("返回值 :"+str1.substring(3))
    println("返回值 :"+str1.substring(2, 7))
    println("返回值 :"+str1.substring(2, str1.length))

    val str2 = "Welcome-to-here"

    println("- 分隔符返回值 :")
    str2.split("-").foreach(println)

    System.out.println("- 分隔符设置分割份数返回值 :")
    str2.split("-", 2).foreach(println)

    val str3 = "java.lang.String"
    System.out.println("转义字符返回值 :")
    str3.split("\\.", 3).foreach(println)

    val str4 = "acount=? and uu =? or n=?"
    println("多个分隔符返回值 :")
    str4.split("and|or").foreach(println)

    val str5 = "\n abc 12 \n "
    println(str5.trim)
    println("str5.trim length:"+str5.trim.length)
    println(str5)
    println("str5 length:"+str5.length)

    val str_int: String = "23"
    val str_float: String = "233.3"

    val my_int: Int = Integer.parseInt(str_int)
    val my_long: Long = java.lang.Long.parseLong(str_int)
    val my_float: Float = java.lang.Float.parseFloat(str_float)
    val my_double: Double = java.lang.Double.parseDouble(str_float)

    println(my_int)
    println(my_long)
    println(my_float)
    println(my_double)

    var odd_value: Long = 0L
    try {
    
    
      odd_value = java.lang.Long.parseLong(str_float)
    } catch {
    
    
      case e: NumberFormatException => {
    
    
        e.printStackTrace()
        println("Wrong format")
      }
    }
  }
}

参考リンク

  1. Java substring() メソッド | 初心者チュートリアル

おすすめ

転載: blog.csdn.net/willian113/article/details/130699052