我有一个文本文件,其内容如下: “ \ n \ n \ n \ n \ n \ n \ n \ n \ t \ n \ t \ t \ t \ n \ t \ t \ t \ t \ t \ t \ n \ t \ t \ t \ t \ n \ t \ t \ n \ n \ n \ t \ n \ t \ t \ n \ t \ t \ t \ t \ t热线:+49 40-300 51 701 \ n \ t \ n \ t \ n \ tLanguages \ n \ t \ n \ t \ n \ t \ t \ n \ t \ t \ n \ t \ t旅行计划\ n \ t \ n \ t \ n \ n \ n \ n \ n \ t \ t \ n \ n \ t \ t \ n \ t \ t \ t \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ t \ t \ t \ t \ t \ n \ t \ t \ t \ t \ n \ t \ t \ t \ t \ n \ t \ t \ t \ t \ n \ n \ t \ t \ n \ n \ t \ t \ n \ t \ t \ t \ t \ t \ tBook \ tBook \ t来自€的套餐59 \ n \ t住宿和抵达\ n \ t音乐套餐\ n \ t海事套餐\ n \ t汉堡为家庭\ n \ t体验汉堡和文化\ n \ n \ n \ n \ n \ t酒店起价€24 \ n \ t在线预订现在!\ n \ tTheme酒店\ n \ t按位置提供的酒店\ n \ t特惠信息\ n \ t来自AZ的酒店\ n \ t其他住宿\ n \ n \ n \ n \ n \ t门票从€8 \ n \ t立即在线预订\ n \ t汉堡音乐\ n \ t汉堡海上\ n \ t观光游览和城市漫步\ n \ t博物馆与展览\ n \ t汉堡为家庭\ n \ n \ n \ n \ n \ t汉堡卡\ n \ t现在在线预订\ n \ t所有好处一目了然\ n \ t常见问题\ n \ n \ n \ n \ n \ t团体旅行\ n \ t预订请求\ n \ t汉堡指南和主题游\ n \ n \ n \ n \ n \ n \ n \ t \ n \ t \ t优惠\ n \ n \ t \ t \ n \ n \ t \ t \ n \ n \ t \ t汉堡卡\ n \ t \ t免费乘坐巴士,铁路和渡轮(HVV),并为150多名游客提供高达50%的折扣... \ n \ n \ t \ n \ t \ n \ t \ t \ n \ t \ t \ t \ n \ t \ t \ t \ t从10,50 EUR \ n \ t \ t \ t \ n \ t \ t \ n \ n \ t \ n \ n \ n \ n \ n \ n \ n \ t景点\ t汉堡的最佳\ n \ t市政厅\ n \ t“ Michel” \ n \ tSt。 Pauli&Reeperbahn \ n \ tElbphilharmonie \ n \ tJungfernstieg \ n \ tMiniatur Wunderland \ n \ tTierpark Hagenbeck \ n \ t关于Alster的所有信息\ n \ tBlankenese \ n \ n \ n \ n \ n \ t汉堡海事\ n \ t城市海岸汉堡\ n \ t汉堡港\ n \tLandungsbrücken\ n \ t鱼市场\ n \ tSpeicherstadt \ n \ t在易北河上\ n \ t港口城市\ n \tWillkomm-Höft\ n \tÖvelgönne\ n \ n \ n \ n \ n \ n \ t具有历史意义的汉堡\ n \ t旧易北河隧道\ n \ t“
我想在\ n上拆分它。我尝试过
string.split("\n")
string.split('\n')
string.split("""\n""")
string.split("\\n")
这似乎无济于事。如何在Scala中完成?
答案 0 :(得分:1)
由\ n分隔,然后由\ t分隔,展平,然后删除空字符串。
var lines = Source.fromFile("/Users/rasika/Documents/example.txt").getLines.mkString
val result = lines.split("\\\\n").flatMap(_.split("\\\\t")).filter(_.nonEmpty).toList
结果
咨询热线:+49 40-300 51 701
语言
旅行计划
书
自€59起的套餐
住宿和到达
音乐包
海运包裹
汉堡家庭之旅
体验汉堡与文化
酒店起价€24
立即在线预订!
主题酒店
各地区的酒店
特别优惠
A-Z酒店
其他住宿
门票8欧元起
立即在线预订!
汉堡音乐剧
汉堡海事
观光游览和城市漫步
博物馆与展览馆
汉堡家庭之旅
汉堡卡
立即在线预订!
所有好处一目了然
常见问题
团体旅行
预订请求
汉堡导游和主题游
优惠
汉堡卡
免费乘坐巴士,铁路和轮渡(HVV),并为150多个游客提供高达50%的折扣...
从10,50 EUR
输出超出截止极限。
答案 1 :(得分:0)
如果您要分割文本(即文字文本,而不仅仅是换行符)中的文字 \n
,请尝试以下操作:
string.split("\\\\n")
在Java / Scala的正则表达式上下文中,文字反斜杠需要四个反斜杠。
答案 2 :(得分:0)
由于您要在换行符之间进行拆分,而io.Source.fromFile.getLines
在换行符之间进行拆分,因此您需要使用
val string = io.Source.fromFile(filepath).mkString
按照this answer。然后您的尝试应该可以奏效,例如
string.split('\n')