Fonctions communes de la chaîne Scala

La chaîne dans Scala est de type String, qui est en fait en Java java.lang.String. Ses fonctions couramment utilisées sont les suivantes :

1. Sous-chaîne-sous-chaîne

substring()La méthode renvoie une sous-chaîne d'une chaîne.

substring()Les méthodes ont les deux formes suivantes :

  • substring(beginIndex: Int)beginIndex est l'index de début et ce formulaire obtient la sous-chaîne de beginIndex à la fin de la chaîne.
  • substring(beginIndex: Int, endIndex: Int)beginIndex est l'index de début et endIndex est l'index de fin. Ce formulaire obtient la sous-chaîne de beginIndex (y compris beginIndex) à endIndex (hors endIndex).

Le schéma suivant du didacticiel débutant en est une bonne illustration :
sous-chaîne - sous-chaînel'exemple de code est le suivant :

val str1 = "This is text"

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

résultat de l'opération :

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

Remarque Si endIndex dépasse la plage de la chaîne, String index out of range: 20une erreur sera signalée.

2. Séparation de la segmentation des chaînes

split()La méthode divise la chaîne en fonction de la correspondance avec l'expression régulière donnée, et le résultat est Array<String>.

Remarque : Les caractères d' échappement tels que ., $et doivent être ajoutés .| Remarque : plusieurs séparateurs peuvent être utilisés comme tirets.*\\
|

split()Les méthodes ont les deux formes suivantes :

  • split(regex: String)regex est le délimiteur d'expression régulière.
  • split(regex: String, limit: Int)regex est le délimiteur d'expression régulière et limit est le nombre de divisions, c'est-à-dire que seuls les premiers délimiteurs de limite sont divisés.
    L'exemple de code est le suivant :
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)

résultat de l'opération :

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

3. Supprimer les espaces de début et de fin -trim

trim()La méthode est utilisée pour supprimer les caractères blancs de début et de fin (y compris les caractères de retour à la ligne) de la chaîne, et comme elle n'a pas de paramètres entrants, les parenthèses peuvent être omises. Par exemple:

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

résultat de l'opération :

abc 12
str3.trim length:6

 abc 12 
 
str3 length:11

4. Conversion vers et à partir de valeurs numériques

Selon le type, la conversion des chaînes en nombres peut être effectuée de la manière suivante :

  • Int - un entier Integer.parseInt()
  • Entier long - long java.lang.Long.parseLong()
  • Float - type à virgule flottante java.lang.Float.parseFloat()
  • Double - Type à virgule flottante double précision java.lang.Double.parseDouble()

L'exemple de code est le suivant :

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)

résultat de l'opération :

23
23
233.3
233.3

Notez que si le format de chaîne n'est pas correct, java.lang.NumberFormatExceptionune exception sera levée, ce qui peut être considéré try/catchcomme une contre-mesure :

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

code complet

StringTest.scalaStringTest.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")
      }
    }
  }
}

lien de référence

  1. Méthode Java substring() | Tutoriel novice

Je suppose que tu aimes

Origine blog.csdn.net/willian113/article/details/130699052
conseillé
Classement