這篇文章主要介紹“Scala讀取文件和正則表達式的方法是什么”,在日常操作中,相信很多人在Scala讀取文件和正則表達式的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Scala讀取文件和正則表達式的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

導入scala.io.Source后,即可引用Source中的方法讀取文件信息。
import scala.io.Source
object FileDemo extends App{
  val source = Source.fromFile("C:/Users/admin/res.txt")
    //返回一個迭代器
  val lines = source.getLines()
  for(i <- lines)
    println(i)
     //內容也可以放到數組中 
//  val arr = source.getLines().toArray
//  for(elem <- arr)
//    println(elem)
     //文件內容直接轉換成一個字符串 
//  val contents = source.mkString
//  println(contents)
}
按字符讀取文件中的內容
import scala.io.Source
object FileDemo extends App{
  val source = Source.fromFile("C:/Users/admin/res.txt")
  for(c <- source)
    println(c)
}
把文件中的內容,轉換成一個單詞的數組
import scala.io.Source
object FileDemo extends App{
  val source = Source.fromFile("C:/Users/admin/res.txt")
  val contents = source.mkString.split(" ")
  for(word <- contents)
  println(word)
}
Source可以直接讀取來自URL等非文件源的內容
import scala.io.Source
object FileDemo extends App{
  val source = Source.fromURL("http://www.baidu.com")
  val lines = source.getLines()
  for(i <- lines)
    println(i)
}
scala 沒有內建的對寫入文件的支持,要寫入文件,使用Java.io.PrintWriter
val out = new PrintWriter("numbers.txt")
for(i <- 1 to 100) out.println(i)
out.close
構造一個Regex對象,用String類的r方法或者使用new Regex(" ")
如果正則表達式中包含反斜杠或者引號的化,可以使用""" """
object RegexDemo extends App{
    //構建一個正則表達式
  val numPattern ="[0-9]+".r
    //val numPattern = new Regex("abl[ae]\\d+")
    //構建一個字符串
  val matchStr ="98 bottles,99bottles"
    //使用findAllIn方法返回所有匹配項的迭代器
  for (matchStr <- numPattern.findAllIn(matchStr))
    println(matchStr)//98 99
    //使用""" """"構造含有特殊字符的正則表達式
  val wsnumPattern ="""\s+[0-9]+\s+"""
    //調用findFirstIn方法返回首個匹配項
  val first = numPattern.findFirstIn(matchStr)
  println(first) //Some(98)
    //調用findPrefixOf方法返回字符串的開始部分是否能匹配
  val ifStartMatch = numPattern.findPrefixOf(matchStr)
  println(ifStartMatch)//Some(98)
    //調用replaceFirstIn使用特定的字符串替換首個匹配項
  val res1 = numPattern.replaceFirstIn(matchStr,"xx")
  println(res1)//xx bottles,99bottles
     //調用replaceAllIn使用特定的字符串替換所有的匹配項
  val res2 = numPattern.replaceAllIn(matchStr,"xx")
  println(res2)//xx bottles,xxbottles
}
分組可以讓我們方便地獲取正則表達式的子表達式。在你想要提取的子表達式兩側加上圓括號
object RegexDemo extends App{
  //數字和字母的組合正則表達式
  val numitemPattern="""([0-9]+) ([a-z]+)""".r
  val line="666 spark"
  for(numitemPattern(num,item) <- numitemPattern.findAllIn(line)){
    println(num+"\t"+item) 
  }
  line match{
    case numitemPattern(num,item)=> println(num+"\t"+item)
    case _=>println("Nothing matched")
  }
}
到此,關于“Scala讀取文件和正則表達式的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯-成都網站建設公司網站,小編會繼續努力為大家帶來更多實用的文章!
                當前名稱:Scala讀取文件和正則表達式的方法是什么-創新互聯
                
                文章地址:http://www.yijiale78.com/article6/ceipig.html
            
成都網站建設公司_創新互聯,為您提供網站營銷、網站排名、網站導航、標簽優化、服務器托管、動態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯