public String convert(String text, String value){
return String.format("test", value.split("\\|")
);
您只需调用它来转换文本中的每个“%s”以及接收到的参数:
String Text="Test Cash deposit for an account %s of currency %s";
String Token="12345|USD";
System.out.println(convert(Text, Token));
您可以直接将其用作:
System.out.println(
String.format(
"Test Cash deposit for an account %s of currency %s",
(Object[]) "12345|USD".split("\\|"))); //Casting to remove the warning, not sure if one Object or a var-args. Cast in array to use var-args
但这不是很好;)
您将确保%s的数量大于或等于接收到的令牌数量,否则将导致异常(对多个参数)
编辑:
对于不知道两个字符串的指定分隔符的版本:(使用not[a-zA-z0-9.382;]
public static void main(String[] args) {
parseText("test % to % or #", "5+8^test"); //test 5 to 8 or test
}
private static void parseText(String text, String tokens) {
String regex = "[^\\w. ]+"; // \w = alphanumeric + _
text = text.replaceAll(regex, "%s");
System.out.println(String.format(text, (Object[]) tokens.split(regex)));
}
对于动态令牌,只需创建一个方法:
您只需调用它来转换文本中的每个“%s”以及接收到的参数:
您可以直接将其用作:
但这不是很好;)
您将确保%s的数量大于或等于接收到的令牌数量,否则将导致异常(对多个参数)
编辑:
对于不知道两个字符串的指定分隔符的版本:(使用not[a-zA-z0-9.382;]
必须使用
String.format(..)
方法,例如:如果你能改变
Text
和Token
的格式,你可以这样做试试这个
如果不测试阵列的正确大小,这可能是一个提示:
电话:
相关问题 更多 >
编程相关推荐