【问题标题】:Getting a certain substring between two different delimiters based on a certain condition in java基于java中的某个条件在两个不同的分隔符之间获取某个子字符串
【发布时间】:2012-10-27 01:09:29
【问题描述】:

所以我不太熟悉 java String 方法,我不确定是否有简单的方法可以做到这一点。我有一个字符串,其中包含用“:”分隔的几个值,每对由另一个定界符“,”与其他值分隔。例如:

AA:BB,CC:DD,XX:YY,EE:FF

映射是“from”和“to”值。根据一个条件,我得到“from”值,我们以“XX”为例,我想在这种情况下检索“to”值“YY”。

我不确定该怎么做。任何帮助将不胜感激。

谢谢:)

【问题讨论】:

    标签: java substring delimited


    【解决方案1】:

    您可以将字符串转换为地图:

    String[] items = string.split(",");
    Map<String, String> map = new HashMap<String, String>();
    for (String item : items) {
        String[] split = item.split(":");
        map.put(split[0], split[1]);
    }
    

    基本上,您将字符串拆分两次。首先,通过使用split(",") 将其拆分为单独的键值对,然后遍历所有这些对。我们再次拆分每一对,这次用冒号,然后将值存储在键值映射中,该映射将字符串键映射到字符串值。

    然后您可以像这样从地图中读取一个值:

    map.get(key);
    

    例如,使用您的示例数据:

    System.out.println(map.get("CC")); // prints "DD"
    

    【讨论】:

      【解决方案2】:

      这是一个示例,您可以如何做到这一点。我在示例中使用整数,但您可以很容易地更改它。

      import java.util.ArrayList;
      import java.util.List;
      
      class Value {
          int from;
          int to;
          Value(int from,int to){
              this.from = from;
              this.to = to;
      
          }
          //getter && setter
      }
      
      public class Test {
          public static void main(String[] args) {
              String input = "12:13,11:12,12:12,134:413";
              String[] values = input.split(",");
              List<Value> parsedValues = new ArrayList();
              for(String value:values){
                  String[] split = value.split(":");
                  parsedValues.add(new Value(new Integer(split[0]).intValue(),new Integer(split[1]).intValue()));
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-17
        • 2012-04-27
        • 2021-04-04
        • 2016-02-10
        • 2014-12-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多