如何讀取字符串逐行並用另一個特定的字符串替換特定的行?
例如:我怎樣才能逐行讀取一個字符串,並用另一個特定的字符串替換特定的字符串
String myString = "This" +"\nis" + "\nonly" + "\nthe" + "\nexample";
而且我想從頂部看他們一行開始行和更換每一個這樣的「這」 - >>「newThis」「是」 - >>「newIs」,並等等。
如何讀取字符串逐行並用另一個特定的字符串替換特定的行?
例如:我怎樣才能逐行讀取一個字符串,並用另一個特定的字符串替換特定的字符串
String myString = "This" +"\nis" + "\nonly" + "\nthe" + "\nexample";
而且我想從頂部看他們一行開始行和更換每一個這樣的「這」 - >>「newThis」「是」 - >>「newIs」,並等等。
可以使用split
方法:
String[] yourStringAsArray = myString.split("\n")
然後你就可以遍歷您的陣列那樣:
for(String s : yourStringAsArray){
s.replaceAll("oldValue", "newValue")
}
好了,你可以在 「\ n」 字符分割字符串,替換你想要的每一個元素,然後像這樣將字符串重新拼接在一起:
String[] lines = myString.split("\n");
// Replace lines here
StringBuilder sb = new StringBuilder();
for (String line : lines) {
sb.append(line + "\n");
}
// Haven't dealt with the trailing "\n", but I leave that as an exercise to the user.
myString = sb.toString();
糟糕!對不起......請參閱編輯。集合和數組混合在一起。 :) –
如果你想,你可以使用以下形式將其存儲爲String []: String [] s_array = myString.split(「\ n」);
然後訪問每個元件單獨
該溶液是基於Java 8流API和lambda表達式。
public static final String DELIMITER = "\n";
public static final Pattern SPLIT_PATTERN = Pattern.compile(DELIMITER);
public static final Function<String, String> TRANSFORM_STRING = (String text) ->
SPLIT_PATTERN.splitAsStream(text)
.map(s -> "new" + s)
.collect(Collectors.joining(DELIMITER));
public static void main(String[] args) {
final String inputText = "This" + "\nis" + "\nonly" + "\nthe" + "\nexample";
final String outputText = TRANSFORM_STRING.apply(inputText);
System.out.println(outputText);
}
不清楚。您不指定應如何存儲結果。至於在新行上分割源代碼,正則表達式是一個解決方案。 – fge