【问题标题】:Returning a value in a specific format (java)返回特定格式的值(java)
【发布时间】:2013-03-22 09:04:16
【问题描述】:

但不确定标题是否说明了我真正想做的事情,

我有一条信息当前打印为

[[1/2, 1/2], 1]

但是我需要它以格式打印出来

{{true@1/2, false@1/2}@1}

我该怎么做呢,我确实设置了 toString 方法,但是我不确定如何获取“true@”并删除 [[,但是我得到了 {。

目前我有,

@Override
public String toString() {
    String s = "{" + this.knowledge + "}";
    return s;

任何帮助将不胜感激。

问候,

模拟

【问题讨论】:

  • 您必须发布更多您的课程以及您如何覆盖 toString() 方法
  • toString 方法用于调试目的。如果您想为最终产品定制打印,您应该介绍自己的功能。
  • @Heuster,或者覆盖toString(),就像OP正在做的那样......

标签: java tostring


【解决方案1】:

我假设您只能访问这种格式的字符串(this.knowledge):[[str,str], str],在这种情况下,以下解决方案将起作用:

@Override
public String toString() {
   StringBuilder strB = new StringBuilder();
    for (int i=0; i<this.knowledge.length(); i++) {
        if(this.knowledge.charAt(i)!='[' && this.knowledge.charAt(i)!=']' && this.knowledge.charAt(i)!=',') 
           strB.append(this.knowledge.charAt(i));
    }
    String[] strs = strB.toString().split("\\s+");
    return "{{true@" + strs[0] + ", false@" + strs[1]+ "}@" + strs[2] + "}";
}

【讨论】:

    【解决方案2】:

    但是,不确定这个答案是否能解释你真正想做的事情,

    您拥有的“信息”看起来很像您可能从列表中获得的默认打印输出。我能够看到“类似”的东西:

    List<String> inner = new ArrayList<String>();
    inner.add("1/2");
    inner.add("1/2");
    
    List<Object> outer = new ArrayList<Object>();
    outer.add(inner);
    outer.add("1");
    
    System.out.println(outer);
    

    如果假设knowledge 是某个(集合的)已知集合是正确的,那么您可以创建一个格式方法,该方法能够获取已知元素并将它们放在正确的位置。如果“true”和“false”是硬编码的文本字符串,它可能看起来像:

    public String formatKnowledge(List list) {
        return "{{true@" + ((List)list.get(0)).get(0) + ", false@" + 
            ((List)list.get(0)).get(1) + "}@" + list.get(1) + "}";
    }
    

    现在显然这仅适用于该确切类型的列表输入。如果列表可能更复杂,则需要更复杂的逻辑来在适当的位置创建正确的文本(和大括号)。此外,如果以某种方式计算“真”和“假”,则还需要添加该逻辑。

    免责声明:以上格式方法仅供说明之用。作者不容忍使用疯狂的盲目演员和更疯狂的盲目索引......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多