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, setGlobalFeatures
public static final String DEFAULT_PREFIX
public static final String DEFAULT_SUFFIX
protected String prefix
DEFAULT_PREFIX
protected String suffix
DEFAULT_SUFFIX
protected int indexedSegmentMaxIdx
protected List<StrTemplateSegment> parseSegments(String template)
StrTemplate
parseSegments
in class StrTemplate
template
- 字符串模板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 StrTemplate
iterable
- 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 StrTemplate
str
- 待解析的字符串,一般是格式化方法的返回值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)
Map
str
- 待解析的字符串,一般是格式化方法的返回值Map
public <T> T matches(String str, Supplier<T> beanOrMapSupplier)
T
- 返回结果对象类型str
- 待解析的字符串,一般是格式化方法的返回值beanOrMapSupplier
- 提供一个 bean 或者 map,例如:HashMap::new
public static NamedPlaceholderStrTemplate.Builder builder(String template)
template
- 字符串模板,不能为 null
Copyright © 2025. All rights reserved.