连接字符串和变量的最简单方法

时间:2015-04-15 09:31:43

标签: java

在Java中,当使用一些有意义的信息记录多个变量时,我倾向于使用类似的东西:

logger.debug("Comparing A["+i+"] = "+A[i]+", with B["+j+"] = "+B[j]+" --> "+A[i]==B[j]);

我想知道是否有一种更简单,更清洁的方法,让我们这样说:

logger.debug("Comparing A[@i] = @A[i], with B[@j] = @B[j] --> @(A[i]==B[j]));

4 个答案:

答案 0 :(得分:3)

String.format,但它要求您将表达式移到行外:

logger.debug(String.format("Comparing A[%d] = %d, with B[%d] = %d --> %b", i, A[i], j, B[j], A[i] == B[j]));

除此之外,不,没有。

答案 1 :(得分:2)

或者,如果您使用Logback,它会提供具有以下签名的方法(类似于所有日志级别)

debug(String format, Object[] args)

可以用作

logger.debug("Hello. I am a {}", msg);

答案 2 :(得分:1)

如果您使用log4j,还可以使用{}作为占位符:

logger.debug("Comparing A[{}] = {}, with B[{}] = {} --> {}", 
  i, A[i], j, B[j], A[i]==B[j]);

你可以看到它here

答案 3 :(得分:0)

看一下java.text.MessageFormat课程。 此类具有Format方法,可以帮助您将参数分配给{Number}占位符...

例如:

logger.debug(MessageFormat.Format("hello {0} {1}", "john","smith"));