[英]Java ArrayList<String>, getting a character in element 0
如果我有一個類似的列表:
ArrayList<String> collection = new ArrayList<>();
這給了元素1
和2
:
"(, element1", "), element2"
如何從 element1 中提取字符串並將'('
替換為我選擇的字符?
我嘗試將ArrayList<>
轉換為String[]
但沒有獲得單個字符串集的運氣。 我還嘗試在ArrayList
中獲取元素,例如arrayList.get(0).contains("(")
。這取決於數組是否包含'('
。問題是如果它是真的,我該怎么做才能收集它並替換它?做.get(0)
不會讓我 select 字符串中的一個字符。
假設“集合”已經存在並且size()
至少為 1:
char charOfMyChoice = 'A';
String oldItem = collection.get(0);
String newItem = oldItem.replaceFirst('(', charOfMyChoice);
collection.set(0, newItem);
如果您想替換所有出現的 '(',請使用replace()
或replaceAll()
方法而不是replaceFirst()
。
熟悉java 文檔對於熟悉 java 至關重要。
我認為這就是你想要做的:
package com.example;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> collection = new ArrayList<>();
collection.add("(, element1\", \")");
collection.add("element2");
int index = 0;
for(String s : collection) {
if(s.contains("(")) {
collection.set(index, s.replace("(", "["));
}
index++;
}
System.out.println(collection);
}
}
Output:
[[, 元素 1", "), 元素 2]
如果您想以“現代”方式進行操作,請使用流:
package com.example;
import java.util.ArrayList;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
ArrayList<String> collection = new ArrayList<>();
collection.add("(, element1\", \")");
collection.add("element2");
collection = (ArrayList<String>)
collection.stream()
.map(str ->
str.contains("(")?
str.replace("(","[") :
str)
.collect(Collectors.toList());
System.out.println(collection);
}
}
Output:
[[, 元素 1", "), 元素 2]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.