在Python中,格式化字符串时,我可以按名称而不是按位置填充占位符,如下所示:
print "There's an incorrect value '%(value)s' in column # %(column)d" % \ { 'value': x, 'column': y }
我想知道这在Java中是否可行(希望没有外部库)?
感谢你的帮助!利用您的所有线索,我编写了例程来完全实现我想要的功能-使用字典使用类似python的字符串格式。由于我是Java新手,因此不胜感激。
public static String dictFormat(String format, Hashtable<String, Object> values) { StringBuilder convFormat = new StringBuilder(format); Enumeration<String> keys = values.keys(); ArrayList valueList = new ArrayList(); int currentPos = 1; while (keys.hasMoreElements()) { String key = keys.nextElement(), formatKey = "%(" + key + ")", formatPos = "%" + Integer.toString(currentPos) + "$"; int index = -1; while ((index = convFormat.indexOf(formatKey, index)) != -1) { convFormat.replace(index, index + formatKey.length(), formatPos); index += formatPos.length(); } valueList.add(values.get(key)); ++currentPos; } return String.format(convFormat.toString(), valueList.toArray()); }