java - 尝试将多个字符串解析为 1 个字符串

标签 java parsing

我正在尝试从一个长字符串中提取 2 个特定的数据。这两个值都在“=”之后,但问题是我不能仅仅在每个“=”上分割数据,因为我需要的一些数据也包含它们:

example: "{col1=RND393JKDN, col2=DJW//39ndo==8}
desired format: "RND393JKDN, DJW//39ndo==8" 

下面是我编写的修复此问题的代码,但另一件事是我不确定将输入多少列,因此我必须能够处理未知数量的列,例如: “{col1=值1,col2=值2,col3=值3}”

for(int i = 0; i < finalResult.size(); i+=modval) { 
    //below forces the result to get stored in below variable as a String type
    String resulttemp = finalResult.get(i).toString();

    //below is only for
    for(int z = 0; z < columnHeaders.size(); z++) {
        String newStr=finalResult.get(i).replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\{", "").replaceAll("\\}", "");

        String newStr2;
        String newStr3;

        String find = "=";

        newStr = (newStr.substring(newStr.indexOf(find)+find.length()));
        newStr2 = (newStr.substring(newStr.indexOf(find)+find.length()));
        newStr3 = (newStr2.substring(newStr.indexOf(find)+find.length()));

        pw.printf("%s\n", newStr, newStr3);
    }
}

最佳答案

如果可能,请考虑更改输入格式。如果没有,这里有一个天真而简单的方法。

import java.util.List;
import java.util.ArrayList;



public class HelloWorld
{
  public static void main(String[] args)
  {
    String s = "{col1=RND393JKDN, col2=DJW//39ndo==8}";
        s=s.substring(1, s.length()-1); //remove {}
        s.replaceAll(" ", "");
        String[] explode = s.split(",");
        List<String> result = new ArrayList<String>();
        for (int i=0; i<explode.length; i++) {
            String keyAndValue = explode[i];
            int at = keyAndValue.indexOf("=");
            String value = keyAndValue.substring(at+1);
            result.add(value);
        }
        String finalResult = "";
        for (String val : result) {
            finalResult+=val+", ";
        }
        finalResult=finalResult.substring(0, finalResult.length()-2);
        System.out.println(finalResult);
  }
}

基本上,分解键+值标记,找到first = char并从那里获取值。够简单的。除非有其他一些意想不到的格式规则。我希望空格和逗号不会出现在键和值中。

关于java - 尝试将多个字符串解析为 1 个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45057266/

相关文章:

iphone - 在 iOS 中解析 PLIST

parsing - Scala中Regex Parsers,Standard TokenParsers和JavaTokenParsers之间的区别

java - Java中SimpleDateFormat解析方法遇到问题

Java Webstart - 将服务器 IP 放入 jnlp 文件中

java - fragment 子类中的 android getMenuInflater() - 无法解析方法

java - 从静态类型到动态类型

java - 如何单击和取消单击来更改按钮的颜色?

java - 构建XML服务解析库

java - 正则表达式提取点符号前后的数据?

java - 无法在 Android 上初始化 Mandrill for Parse