好程式設計師大資料教程分享Scala系列之檔案以及正規表示式
好程式設計師大資料教程分享Scala系列之檔案以及正規表示式
1 讀取行
匯入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)
}
2 讀取字元
按字元讀取檔案中的內容
import scala.io.Source
object FileDemo
extends App{
val source = Source.fromFile("C:/Users/admin/res.txt")
for(c <- source)
println(c)
}
3 讀取單詞
把檔案中的內容,轉換成一個單詞的陣列
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(")
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{
//
數字和字母的組合正規表示式
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")
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2660514/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料教程分享Scala系列之閉包程式設計師大資料
- 好程式設計師大資料教程Scala系列之類程式設計師大資料
- 好程式設計師大資料教程分享Scala系列之Option_偏函式_String程式設計師大資料函式
- 好程式設計師大資料教程Scala系列之繼承程式設計師大資料繼承
- 好程式設計師大資料分享Scala系列之柯里化程式設計師大資料
- 好程式設計師大資料教程Scala系列之高階函式程式設計師大資料函式
- 好程式設計師大資料學習路線分享Scala系列之物件程式設計師大資料物件
- 好程式設計師大資料學習路線分享Scala系列之集合操作函式程式設計師大資料函式
- 好程式設計師大資料教程Scala系列之隱式轉換和隱式引數程式設計師大資料
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料學習路線分享Scala系列之抽象類程式設計師大資料抽象
- 好程式設計師大資料學習路線分享Scala系列之泛型程式設計師大資料泛型
- 好程式設計師大資料學習路線分享Scala系列之陣列程式設計師大資料陣列
- 好程式設計師大資料學習路線分享Scala系列之對映Map程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之基礎篇程式設計師大資料
- 好程式設計師大資料學習路線分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料教程Scala系列之方法的巢狀和方法多型程式設計師大資料巢狀多型
- 好程式設計師分享使用JavaScript正規表示式如何去掉雙引號程式設計師JavaScript
- 好程式設計師大資料學習路線分享Lambda表示式程式設計師大資料
- 好程式設計師大資料教程分享實用的大資料之陣列程式設計師大資料陣列
- 好程式設計師大資料教程分享之Hadoop優缺點程式設計師大資料Hadoop
- 好程式設計師web前端分享使用JavaScript正規表示式如何去掉雙引號程式設計師Web前端JavaScript
- 好程式設計師Java教程分享Java8.0新特性之Lambda表示式程式設計師Java
- 好程式設計師大資料教程分享大資料之流程控制程式設計師大資料
- Qt Creator程式設計之正規表示式QT程式設計
- 05 shell程式設計之正規表示式程式設計
- 好程式設計師大資料教程分享:HDFS基本概念程式設計師大資料
- 好程式設計師大資料學習路線分享分散式檔案系統HDFS程式設計師大資料分散式
- 好程式設計師大資料學習路線分享Scala分支和迴圈程式設計師大資料
- 好程式設計師大資料培訓分享之《MySQL資料庫》常用函式整理程式設計師大資料MySql資料庫函式
- 好程式設計師分享java8新特性之Lambda表示式程式設計師Java
- 好程式設計師大資料學習路線分享大資料之字串程式設計師大資料字串
- 好程式設計師大資料培訓分享之hive常用內部函式程式設計師大資料Hive函式
- 好程式設計師Python培訓分享python中爬蟲常用到的正規表示式程式設計師Python爬蟲
- 好程式設計師大資料教程分享HadoopHDFS操作命令總結程式設計師大資料Hadoop
- 好程式設計師Java教程分享Java之設計模式程式設計師Java設計模式
- 好程式設計師大資料培訓分享之hive常見自定義函式程式設計師大資料Hive函式
- 理解正規表示式(程式設計師第3期文章)程式設計師