免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
大數(shù)據(jù)Scala系列之文件以及正則表達(dá)式

1 讀取行

導(dǎo)入scala.io.Source后,即可引用Source中的方法讀取文件信息。

import scala.io.Source
object FileDemo extends App{
  val source = Source.fromFile("C:/Users/admin/res.txt")
    //返回一個(gè)迭代器
  val lines = source.getLines()
  for(i <- lines)
    println(i)
     //內(nèi)容也可以放到數(shù)組中
//  val arr = source.getLines().toArray
//  for(elem <- arr)
//    println(elem)
     //文件內(nèi)容直接轉(zhuǎn)換成一個(gè)字符串
//  val contents = source.mkString
//  println(contents)
}

2 讀取字符

按字符讀取文件中的內(nèi)容

import scala.io.Source
object FileDemo extends App{
  val source = Source.fromFile("C:/Users/admin/res.txt")
  for(c <- source)
    println(c)
}

3 讀取單詞

把文件中的內(nèi)容,轉(zhuǎn)換成一個(gè)單詞的數(shù)組

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)
}

4 讀取網(wǎng)絡(luò)文件

Source可以直接讀取來自URL等非文件源的內(nèi)容

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)
}

5 寫文件

scala 沒有內(nèi)建的對(duì)寫入文件的支持,要寫入文件,使用Java.io.PrintWriter

val out = new PrintWriter("numbers.txt")
for(i <- 1 to 100) out.println(i)
out.close

6 正則表達(dá)式

構(gòu)造一個(gè)Regex對(duì)象,用String類的r方法或者使用new Regex(" ")

如果正則表達(dá)式中包含反斜杠或者引號(hào)的化,可以使用""" """

object RegexDemo extends App{
    //構(gòu)建一個(gè)正則表達(dá)式
  val numPattern ="[0-9]+".r
    //val numPattern = new Regex("abl[ae]\\d+")
    //構(gòu)建一個(gè)字符串
  val matchStr ="98 bottles,99bottles"
    //使用findAllIn方法返回所有匹配項(xiàng)的迭代器
  for (matchStr <- numPattern.findAllIn(matchStr))
    println(matchStr)//98 99
    //使用""" """"構(gòu)造含有特殊字符的正則表達(dá)式
  val wsnumPattern ="""\s+[0-9]+\s+"""
    //調(diào)用findFirstIn方法返回首個(gè)匹配項(xiàng)
  val first = numPattern.findFirstIn(matchStr)
  println(first) //Some(98)
    //調(diào)用findPrefixOf方法返回字符串的開始部分是否能匹配
  val ifStartMatch = numPattern.findPrefixOf(matchStr)
  println(ifStartMatch)//Some(98)
    //調(diào)用replaceFirstIn使用特定的字符串替換首個(gè)匹配項(xiàng)
  val res1 = numPattern.replaceFirstIn(matchStr,"xx")
  println(res1)//xx bottles,99bottles
     //調(diào)用replaceAllIn使用特定的字符串替換所有的匹配項(xiàng)
  val res2 = numPattern.replaceAllIn(matchStr,"xx")
  println(res2)//xx bottles,xxbottles
}

6 正則表達(dá)式組

分組可以讓我們方便地獲取正則表達(dá)式的子表達(dá)式。在你想要提取的子表達(dá)式兩側(cè)加上圓括號(hào)

object RegexDemo extends App{
  //數(shù)字和字母的組合正則表達(dá)式
  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")
  }
}

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java正則表達(dá)式(一) - fuliang - JavaEye技術(shù)網(wǎng)站
SED與AWK學(xué)習(xí)筆記 - 運(yùn)維人生
全能字符串批量替換機(jī)
replace和replaceAll的區(qū)別
關(guān)關(guān)采集規(guī)則教程
java正則表達(dá)式徹底研究
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服