java - 用空格分隔列表项,用选项卡分隔更高级别的指标

标签 java arrays list whitespace apache-stringutils

我有以下功能:

 public String tabSerializer(String log, String time) {
        StringJoiner joiner = new StringJoiner("\t");
        addValue(company, joiner);
        addValue(users, joiner);
        ...
        return joiner.toString();
     }


  private static void addValue(Object value, StringJoiner joiner){
        if(value instanceof List){
            addValuesFromList((List<?>)value, joiner);
        }
        else{
            joiner.add(String.valueOf(value));
        }
    }
  private static void addValuesFromList(List<?> arr, StringJoiner joiner) {
        for(int i=0; i<arr.size(); i++){
            Object value = arr.get(i);
            addValue(value, joiner);
        }
    }

company 是一个字符串列表。示例:[苹果、芒果]。我试图通过选项卡分隔 tabSerializer() 函数中传递的所有值。但是,使用我当前的代码,我什至在列表值(例如苹果芒果)之间也得到了制表符,而不是空格。

我想用空格分隔列表值,同时仍然用制表符分隔所有更高级别的维度。

我尝试在“addValuesFromList()”函数中添加:value= value + "" 函数,但不知道如何进一步使用它来与连接器集成。

如有任何帮助,我们将不胜感激。

最佳答案

或者,如果您仍然想使用 StringJoiner,请使用 addValuesFromList 中的第二个连接器。

private static void addValuesFromList(List<?> arr, StringJoiner joiner) {
    StringJoiner spaceJoiner = new StringJoiner(" ");

    for (int i = 0; i < arr.size(); i++) {
        Object value = arr.get(i);
        spaceJoiner.add(String.valueOf(value));
    }
    String spacedValue = spaceJoiner.toString(); 
    addValue(spacedValue, joiner);

}

它能满足您的需要吗?

关于java - 用空格分隔列表项,用选项卡分隔更高级别的指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51109091/

相关文章:

javascript - jQuery 从类数组中查找类名值

python - 从元组更改为列表,反之亦然

java - 有没有办法限制JTextField的数值

java - 如何预填充重复 h :selectOneMenu?

java - Struts 2 jquery sj :select and json result

c - 数组内存分配

java - 将可完成的 future 的异常映射到不同的异常类型?

c++ - 结构或类中的数组初始化

python - 如何从元组获得持久哈希?

c# - C# 中的多维数组列表或列表?