如何找出扫描仪上次使用多个分隔符的分隔符

时间:2017-08-23 10:03:08

标签: java java.util.scanner delimiter

如果您不关心示例/背景,请跳过问题

这个

背后的故事

我目前正在尝试调试一段代码,以便我可以解决任何问题,因此我不必在以后重写整个事情。不幸的是,它打印出一个眼睛,所以我正在尝试清理它

实施例

这些示例已包含我尝试过的修复程序,但我将其标记出来。另外,请注意他们彼此都是正典的

Main类(打印调试信息的那个)

public class Main{
    public static void main(String[] args){
        Scanner s = new Scanner(Foo.toString).useDelimiter("\\[|\\]|,]"); //I'm using the delimiters "[", "]", and ",", because they're used for the debug program to separate Objects/Arrays
        //My fix starts here
        String debugOutput = "Output: "
        do{
            try {
                foo = s.next();
                debugOutput = debugOutput + foo + "\n";
            } catch (NoSuchElementException ignore){
                bar = false;
            }
        } while (bar);
        //My fix ends here
        System.out.println(debugOutput); //Without a fix, the debugOutput would be debugInfo
    }
}

我正在调试的Foo类

class Foo{ //Class I'm trying to debug

    //The code I'm busy debugging (for a list of classes, see the output as I don't feel like typing it all out

    @Override
    public String toString() {return ToStringBuilder.reflectionToString(this);}
}

我没有“修复”的输出

ExampleClass@123456[ExampleArray1=[ExampleString1="Example String 1",ExampleString2="Example String 2"],ExampleObject1@234567=[ExampleString3="Example String 3",ExampleString4="Example String 4"],ExampleString5="Example String 5"]

我正在寻找的输出(不必完全相同)

ExampleClass@123456
    ExampleArray1=
        ExampleObject2="Example String1"
        ExampleObject3="Example String2"
    ExampleObject1@234567=
        ExampleString3="Example String 3"
        ExampleString4="Example String 4"
    ExampleString5="Example String 5"

我正在使用的外部库

  • org.apache.commons.lang3.builder.ToStringBuilder

我的问题

有没有办法找出上次使用的分隔符?

它不一定是扫描仪,因为这不会出现在最终的代码中,所以解决方案的混乱程度并不重要。
我意识到这是一个很受欢迎的问题,但所有问题都在寻找一个更为封闭的答案。我很好地改变了迄今为止我所做的很多事情。

0 个答案:

没有答案