Индивидуальные строки в искровых скалах - PullRequest
1 голос
/ 25 сентября 2019

У меня есть строка типа "debug#compile".Теперь моя конечная цель - преобразовать первую букву каждого слова в верхний регистр.Итак, наконец я должен получить "Debug#Compile", где 'D' и 'C' конвертируются в верхний регистр.

Моя логика:
1) Я должен разбить строку на основе разделителей.Это будут специальные символы. Так что я должен проверять каждый раз.
2) После этого я конвертирую первую букву каждого слова в верхний регистр, а затем, используя карту, присоединяюсь снова.

Я стараюсь изо всех сил, но не могу разработать код для этого.Может ли кто-нибудь помочь мне в этом.Даже подсказки помогли бы!

Ниже приведен мой код:

object WordCase {
  def main(args: Array[String]) {
    val s="siddhesh#kalgaonkar"
    var b=""
    val delimeters= Array("#","_")


      if(delimeters(0)=="#")
      {
         b=s.split(delimeters(0).toString).map(_.capitalize).mkString(delimeters(0).toString())
      }
      else if(delimeters(0)=="_")
      {
        b=s.split(delimeters(0).toString).map(_.capitalize).mkString(delimeters(0).toString())
      }
      else{
        println("Non-Standard String")
      }


    println(b)
  }
}

В моем коде заглавная буква каждого слова в заглавной на основе постоянного разделителя и имеетслить это.Здесь для первой части, т. Е. "#", она заглавная первая буква каждого слова, но не во втором случае, т.е. "_".Могу ли я сделать глупые ошибки в цикле?

Ответы [ 2 ]

1 голос
/ 25 сентября 2019
scala> val s="siddhesh#kalgaonkar"

scala> val specialChar = (s.split("[a-zA-Z0-9]") filterNot Seq("").contains).mkString

scala> s.replaceAll("[^a-zA-Z]+"," ").split(" ").map(_.capitalize).mkString(",").replaceAll(",",specialChar)
res41: String = Siddhesh#Kalgaonkar

Таким образом вы можете управлять несколькими специальными символами

scala> val s="siddhesh_kalgaonkar"
s: String = siddhesh_kalgaonkar

scala> val specialChar = (s.split("[a-zA-Z0-9]") filterNot Seq("").contains).mkString
specialChar: String = _

scala> s.replaceAll("[^a-zA-Z]+"," ").split(" ").map(_.capitalize).mkString(",").replaceAll(",",specialChar)
res42: String = Siddhesh_Kalgaonkar
0 голосов
/ 25 сентября 2019

Я решил это простым способом:

object WordCase {
  def main(args: Array[String]) {
    val s = "siddhesh_kalgaonkar"


    var b = s.replaceAll("[^a-zA-Z]+", " ").split(" ").map(_.capitalize).mkString(" ") //Replacing delimiters with space and capitalizing first letter of each word
    val c=b.indexOf(" ") //Getting index of space
    val d=s.charAt(c).toString // Getting delimiter character from the original string 
    val output=b.replace(" ", d) //Now replacing space with the delimiter character in the modified string i.e 'b'
    println(output)
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...