大數(shù)據(jù)Scala系列之文件以及正則表達式-創(chuàng)新互聯(lián)

大數(shù)據(jù)Scala系列之文件以及正則表達式
1 讀取行
導入scala.io.Source后,即可引用Source中的方法讀取文件信息。

創(chuàng)新互聯(lián)建站公司2013年成立,先為石首等服務建站,石首等地企業(yè),進行企業(yè)商務咨詢服務。為石首企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

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)
//內容也可以放到數(shù)組中
// val arr = source.getLines().toArray
// for(elem <- arr)
// println(elem)
//文件內容直接轉換成一個字符串
// val contents = source.mkString
// println(contents)
}

2 讀取字符
按字符讀取文件中的內容

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

3 讀取單詞
把文件中的內容,轉換成一個單詞的數(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 讀取網絡文件
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)
}

5 寫文件
scala 沒有內建的對寫入文件的支持,要寫入文件,使用Java.io.PrintWriter

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

6 正則表達式
構造一個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
}

6 正則表達式組
分組可以讓我們方便地獲取正則表達式的子表達式。在你想要提取的子表達式兩側加上圓括號

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

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網站標題:大數(shù)據(jù)Scala系列之文件以及正則表達式-創(chuàng)新互聯(lián)
鏈接分享:http://muchs.cn/article28/hihjp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、營銷型網站建設網站維護、定制開發(fā)、企業(yè)網站制作、服務器托管

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網站制作