JAVA:在管道上拆分并将值附加到字符串

标签 java string replace split

需要建议以更好的方式处理这个问题吗?

我的数据存储为 TAX|CHURCH, Texas, San Antonia, 250.00 | SCHOOL,NEVADA,Park-SCHOOL,122.1 其中 TAX,CHURCH,SCHOOL 是我不感兴趣的代码,但它们的值(value)。

if (input != null && !"NOTFOUND".equalsIgnoreCase(input)) {
    String[] list_str = input.split("\\|");
    int list_length = list_str.length;
    int i;

    for (String asset : list_str) {
        System.out.println(" asset : " + asset);
        if (asset.contains("TAX")) {
            /* get values for "TAX" */
            /* replace "TAX" from values */
        }

        if (asset.contains("CHURCH")) {
            input = input.replaceFirst("CHURCH", "");
        }

        if (asset.contains("SCHOOL")) {
            input = input.replaceAll("SCHOOL", "");
        }
    }
}

System.out.println(" input : " + input); /* final input */

输入条件:

我的输入字符串可能看起来像=
“税务|德克萨斯州圣安东尼奥教堂,250.00 | 内华达州学校,Park-SCHOOL,122.1”
“教堂,德克萨斯州,圣安东尼奥,250.00 | 学校,内华达州,公园学校,122.1”
“TAX|CHURCH,德克萨斯州,圣安东尼奥,250.00”
“教堂,德克萨斯州,圣安东尼奥,250.00”

我得到的最终输入为“,Texas, San Antonia, 250.00 | , NEVADA, Park-, 122.1”,但我希望我的最终字符串是

input =“德克萨斯州,圣安东尼奥,250.00,内华达州,Park-SCHOOL,122.1

最佳答案

如果输入格式保证是您提到的格式之一,则以下代码将起作用:

public class TestClass {

public static void main(String[] args) {
    String input = "TAX|CHURCH, Texas, San Antonia, 250.00 | SCHOOL, NEVADA, Park-SCHOOL, 122.1";
    String[] parts = input.split(" \\| ");
    String result = parts[0].split("CHURCH, ")[1];

    if (parts.length > 1) {
        result += ", " + parts[1].substring(8); 
    }

    System.out.println(result);
}

}

这使用正则表达式将整个表达式分成两部分来检查字符串 |,这是一个单独的正则表达式,用于获取第一个中 CHURCH, 之外的所有内容如果表达式的第二部分存在,它将使用硬编码索引来获取您需要的子字符串,因为第二部分始终以 SCHOOL,

开头

我建议阅读正则表达式,这在这种情况下非常有用。

关于JAVA:在管道上拆分并将值附加到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15669551/

相关文章:

ruby-on-rails - 使用 ruby​​ gsub 和正则表达式进行更智能的字符替换

r - 如何在巨大的数据框中用零替换 NaN 值?

JavaFX 在 ViewModel 上使用 Stage

java - DAO工厂 : return a new instance or always the same?

java - 删除Java字符串中不需要的字符

javascript - 我需要获取一个输入的字符串,取出非数字字符,然后如果该字符串以1开头,则删除1

string - 一旦其所有者超出范围,谁是串联字符串的所有者?

javascript - 关于javascript字符串替换方法的问题

java - 使用来自另一个 Activity 的数据过滤 Recyclerview

java - 在java中运行windows powershell命令