public class NamedPlaceholderStrTemplate extends StrTemplate
例如,"{1}", "{name}", "#{id}"
| Modifier and Type | Class and Description |
|---|---|
static class |
NamedPlaceholderStrTemplate.Builder
构造器
|
StrTemplate.AbstractBuilder<BuilderChild extends StrTemplate.AbstractBuilder<BuilderChild,TemplateChild>,TemplateChild extends StrTemplate>, StrTemplate.Feature| Modifier and Type | Field and Description |
|---|---|
static String |
DEFAULT_PREFIX
默认前缀
|
static String |
DEFAULT_SUFFIX
默认后缀
|
protected int |
indexedSegmentMaxIdx
在 下标占位符中,最大的下标值
|
protected String |
prefix
占位符前缀,默认为:
DEFAULT_PREFIX |
protected String |
suffix
占位符后缀,默认为:
DEFAULT_SUFFIX |
DEFAULT_ESCAPE, defaultValue, defaultValueHandler, escape, fixedTextTotalLength, globalDefaultValueHandler, globalFeatures, placeholderSegments, segments| Modifier | Constructor and Description |
|---|---|
protected |
NamedPlaceholderStrTemplate(String template,
int features,
String prefix,
String suffix,
char escape,
String defaultValue,
UnaryOperator<String> defaultValueHandler) |
| Modifier and Type | Method and Description |
|---|---|
static NamedPlaceholderStrTemplate.Builder |
builder(String template)
创建 builder
|
String |
format(Function<String,?> valueProvider)
使用 占位变量名称 从 valueSupplier 中查询值来 替换 占位符
|
String |
format(Function<String,?> valueSupplier,
Predicate<String> containsKey)
使用 占位变量名称 从 valueSupplier 中查询值来 替换 占位符
|
String |
format(Map<String,?> map)
使用 占位变量名称 从 Map 中查询值来 替换 占位符
|
String |
format(Object beanOrMap)
使用 占位变量名称 从 Bean 或 Map 中查询值来 替换 占位符
|
String |
formatArrayIndexed(Object array)
按 下标 使用 原始数组元素 替换 占位符
|
String |
formatArrayIndexed(Object[] array)
按 下标 使用 数组元素 替换 占位符
|
String |
formatArraySequence(Object array)
按顺序使用 原始数组元素 替换 占位符
|
String |
formatArraySequence(Object[] array)
按顺序使用 数组元素 替换 占位符
|
String |
formatIndexed(Collection<?> collection)
按 下标 使用 集合元素 替换 占位符
|
String |
formatIndexed(Collection<?> collection,
IntFunction<String> missingIndexHandler)
按 下标 使用 集合元素 替换 占位符
|
String |
formatIndexed(Object... args)
按 下标 使用 数组元素 替换 占位符
|
String |
formatSequence(Iterable<?> iterable)
按顺序使用 迭代器元素 替换 占位符
|
String |
formatSequence(Object... args)
按顺序使用 数组元素 替换 占位符
|
Map<String,String> |
matches(String str)
根据 占位变量 和 对应位置解析值 构造
Map |
<T> T |
matches(String str,
Supplier<T> beanOrMapSupplier)
根据 占位变量 和 对应位置解析值 构造 map 或者 bean 实例
|
List<String> |
matchesIndexed(String str)
将 占位符位置的值 按 占位符下标值 解析为 字符串列表
|
void |
matchesIndexed(String str,
BiConsumer<Integer,String> idxValueConsumer,
IntFunction<String> missingIndexHandler)
根据 下标 和 下标占位符位置的值,自行提取结果值
例如,模板中为 "This is between {1} and {2}",格式化结果为 "This is between 666 and 999",
由于其最大下标为 2, 则解析结果中固定有 3 个元素,解析结果为
[null, "666", "999"] |
List<String> |
matchesIndexed(String str,
IntFunction<String> missingIndexHandler)
将 占位符位置的值 按 占位符下标值 解析为 字符串列表
例如,模板中为 "This is between {1} and {2}",格式化结果为 "This is between 666 and 999",
由于其最大下标为 2, 则解析结果中固定有 3 个元素,解析结果为
[null, "666", "999"] |
String[] |
matchesIndexedToArray(String str)
将 占位符位置的值 按 占位符下标值 解析为 字符串数组
|
String[] |
matchesIndexedToArray(String str,
IntFunction<String> missingIndexHandler)
将 占位符位置的值 按 占位符下标值 解析为 字符串数组
|
List<String> |
matchesSequence(String str)
将 占位符位置的值 按顺序解析为 字符串列表
|
String[] |
matchesSequenceToArray(String str)
将 占位符位置的值 按顺序解析为 字符串数组
|
protected List<StrTemplateSegment> |
parseSegments(String template)
将 模板 解析为 Segment 列表
|
addLiteralSegment, afterInit, formatBySegment, formatMissingKey, formatNullValue, formatRawByKey, formatRawBySegment, getDefaultValue, getFeatures, getPlaceholderSegments, getPlaceholderTexts, getPlaceholderVariableNames, getSegments, getTemplate, hasDefaultValue, isMatches, matchesByKey, matchesByKey, matchesRawByKey, matchesRawBySegment, of, ofNamed, setGlobalDefaultValue, setGlobalFeaturespublic static final String DEFAULT_PREFIX
public static final String DEFAULT_SUFFIX
protected String prefix
DEFAULT_PREFIXprotected String suffix
DEFAULT_SUFFIXprotected int indexedSegmentMaxIdx
protected List<StrTemplateSegment> parseSegments(String template)
StrTemplateparseSegments in class StrTemplatetemplate - 字符串模板public String formatSequence(Object... args)
args - 可变参数public String formatArraySequence(Object array)
array - 原始类型数组,例如: int[]public String formatArraySequence(Object[] array)
array - 数组public String formatSequence(Iterable<?> iterable)
formatSequence in class StrTemplateiterable - iterablepublic String formatIndexed(Object... args)
args - 可变参数public String formatArrayIndexed(Object array)
array - 原始类型数组public String formatArrayIndexed(Object[] array)
array - 数组public String formatIndexed(Collection<?> collection)
collection - 集合元素public String formatIndexed(Collection<?> collection, IntFunction<String> missingIndexHandler)
collection - 集合元素missingIndexHandler - 集合中不存在下标位置时的处理器,根据 下标 返回 代替值public String format(Object beanOrMap)
beanOrMap - Bean 或 Map 实例public String format(Map<String,?> map)
map - mappublic String format(Function<String,?> valueProvider)
valueProvider - 根据 占位变量名称 返回 值public String format(Function<String,?> valueSupplier, Predicate<String> containsKey)
valueSupplier - 根据 占位变量名称 返回 值containsKey - 占位变量名称 是否存在,例如:map.containsKey(key)public String[] matchesSequenceToArray(String str)
str - 待解析的字符串,一般是格式化方法的返回值public List<String> matchesSequence(String str)
matchesSequence in class StrTemplatestr - 待解析的字符串,一般是格式化方法的返回值public String[] matchesIndexedToArray(String str)
str - 待解析的字符串,一般是格式化方法的返回值matchesIndexed(String, IntFunction)public String[] matchesIndexedToArray(String str, IntFunction<String> missingIndexHandler)
str - 待解析的字符串,一般是格式化方法的返回值missingIndexHandler - 根据 下标 返回 默认值,该参数可以为 null,仅在 Feature#MATCH_EMPTY_VALUE_TO_DEFAULT_VALUE 策略时生效matchesIndexed(String, IntFunction)public List<String> matchesIndexed(String str)
str - 待解析的字符串,一般是格式化方法的返回值matchesIndexed(String, IntFunction)public List<String> matchesIndexed(String str, IntFunction<String> missingIndexHandler)
例如,模板中为 "This is between {1} and {2}",格式化结果为 "This is between 666 and 999",
由于其最大下标为 2, 则解析结果中固定有 3 个元素,解析结果为 [null, "666", "999"]
str - 待解析的字符串,一般是格式化方法的返回值missingIndexHandler - 根据 下标 返回 默认值,该参数可以为 null,仅在 Feature#MATCH_EMPTY_VALUE_TO_DEFAULT_VALUE 策略时生效public void matchesIndexed(String str, BiConsumer<Integer,String> idxValueConsumer, IntFunction<String> missingIndexHandler)
例如,模板中为 "This is between {1} and {2}",格式化结果为 "This is between 666 and 999",
由于其最大下标为 2, 则解析结果中固定有 3 个元素,解析结果为 [null, "666", "999"]
str - 待解析的字符串,一般是格式化方法的返回值idxValueConsumer - 处理 下标 和 下标占位符位置的值 的消费者,例如:(idx, value) -> list.set(idx, value)missingIndexHandler - 根据 下标 返回 默认值,该参数可以为 null,仅在 Feature#MATCH_EMPTY_VALUE_TO_DEFAULT_VALUE 策略时生效public Map<String,String> matches(String str)
Mapstr - 待解析的字符串,一般是格式化方法的返回值Mappublic <T> T matches(String str, Supplier<T> beanOrMapSupplier)
T - 返回结果对象类型str - 待解析的字符串,一般是格式化方法的返回值beanOrMapSupplier - 提供一个 bean 或者 map,例如:HashMap::newpublic static NamedPlaceholderStrTemplate.Builder builder(String template)
template - 字符串模板,不能为 nullCopyright © 2025. All rights reserved.