簡體   English   中英

Java:替換字符串(用方括號!)

[英]Java: Replace String (with brackets!)

我目前正在開發一個小型程序,該程序:

  • 讀取Excel文檔(.xlsx,使用SmartXLS),並將內容保存在長字符串(每個單元格都換一行)中
  • 根據配置文件中的示例,讀取配置文件,然后轉換長字符串(replaceAll)中的子字符串和/或添加前綴
  • 將最終的字符串輸出到txt文件中

轉換示例:abc(每個部分之間都有一個制表符),例如“ its [] bracket”->“ itsabracket”

tagname [ ] a

在配置文件中(“ []”被替換為“ a”)。 a是告訴我要轉換哪些列的標簽,b是原始子字符串,c是必須轉換為String的字符串。

問題是:我已經知道配置文件中將使用方括號(圓形,卷曲和方括號),但是我不知道它是否只是一個或什至更長的短語(帶字母,括號之間的數字。

String s = s.replaceAll(convert[i].original, convert[i].new);

for“ []”->“ a”將[a]寫入輸出文件,如果我先執行以下操作,則當它讀取配置文件並將所有內容保存在“ convert”數組中時,它將引發PatternSyntaxException(“ Unclosed character靠近索引0“的類別):

if(ss.contains("[")) {
    ss = ss.replaceAll("[", "\\[");
} else if(ss.contains("]")) {
    ss = s.replaceAll("]", "\\]");
}

if(ss.contains("\\[")) {
    ss = ss.replaceAll("\\[", "\\\\[");
} else if(ss.contains("\\]")) {
    ss = s.replaceAll("\\]", "\\\\]");
}

它再次輸出“ [a]”。

有什么想法,我該如何做呢?

Use String.replace它接受與replaceAll不同的字符序列。您不必對[]等使用轉義字符。

 String s = s.replace(convert[i].original, convert[i].new);

輸入
其[] []]托架
標記名[] a

產量

itsaa]托架

希望這是您希望使用代碼實現的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM