2015-06-16 54 views
0

我需要在Scala中創建一些包含空格的字符串文字的Windows文件路徑。我已經嘗試用雙引號將整個路徑包裝起來,並將整個路徑用雙引號包起來,每個目錄名都有一個帶有單引號的空格。現在它在兩個地方都想要一個「\ Jun」的轉義字符,我不知道爲什麼。Scala - 將包含空格的Windows文件路徑寫爲字符串文字

這裏是字符串:

val input = "R:\'Unclaimed Property'\'CT State'\2015\Jun\ct_finderlist_2015.pdf" 
    val output = "R:\'Unclaimed Property'\'CT State'\2015\Jun" 

下面是最新的錯誤: enter image description here

回答

6

的問題是與\角色,是要進行轉義。 這應該工作:

val input = "R:\\Unclaimed Property\\CT State\\2015\\Jun.ct_finderlist_2015.pdf" 
val output = "R:\\Unclaimed Property\\CT State\\2015\\Jun" 
+2

另外,您還可以使用Unix文件路徑分隔符,而不是blackslashes,所以這也將工作:'VAL輸入=「R:/無人認領財產/ CT國家/ 2015 /六月。 「ct_finderlist_2015.pdf」 val output =「R:/ Unclaimed Property/CT State/2015/Jun」' –

+0

謝謝Gabor,那就是訣竅。我發現我在'/ Jun'和'.ct_finderlist_2015.pdf'之間有一個拼寫錯誤...''而不是\ – slumpmonkey

3

一個清潔的方式來創建字符串常量是用三重引號。

你可以直接用三個引號包裝你的字符串而不用轉義特殊字符。你可以在其中放入多行字符串。 編碼和閱讀更容易。

例如

VAL輸入=

""" 
    |R:\Unclaimed Property\CT State\2015\Jun.ct_finderlist_2015.pdf 
""" 

要將變量添加到字符串,做這樣通過添加 「$ VARIABLENAME」 以下。

VAL輸入=

s""" 
    |R:\Unclaimed Property\$variablePath\CT State\2015\Jun.ct_finderlist_2015.pdf 
""" 
+0

我想你的意思是以['「」「.stripMargin']結尾(https:// spark。 apache.org/docs/1.3.0/api/scala/index.html#org.apache.spark.Accumulator)而不僅僅是「」「」。 ('|'部分提出了這種解決方案,很可能不應該是'String'的一部分。) –

+0

Gabor,你是對的。它應該在結尾「」「後面有」.stripMargin「。 – JoeZhou

相關問題