簡體   English   中英

Java ArrayList<string> , 獲取元素 0 中的一個字符</string>

[英]Java ArrayList<String>, getting a character in element 0

如果我有一個類似的列表:

ArrayList<String> collection = new ArrayList<>();

這給了元素12

"(, 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.

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