如何从原始文件中读取并在 String.format 中使用
how to read from file raw and use in String.format
我想从原始文件中读取数据并替换文本中的格式。
例如...在这样的原始文件中:
hello {0}, my name id {1}, my age is {2}....
当我使用 String.format 时,如下所示,文本失去了缩进。
String data = readTextFile(this, R.raw.input);
data = String.format(data, "world", "josh", "3");
有谁知道如何在不丢失缩进的情况下做到这一点?
您提供的代码看起来更像 String.format 例如来自 C#. String.format in Java 的代码不能这样工作,它更像 printf。
您可以像这样操纵您的输入。
String input = "hello %s, my name id %s, my age is %s";
String.format(input, "world", "josh", "3");
输出:
hello world, my name id josh, my age is 3
缩进应该相同
编辑
如果您想使用括号,您可以使用 MessageFormat.format
而不是 String.format
。
String messageInput = "hello {0}, my name id {1}, my age is {2}";
MessageFormat.format(messageInput,"world", "josh", "3");
您可以将 Regular Explessions 与这样的模式一起使用:"{/d++}"
:
String format (String input, String... args) {
Pattern p = Pattern.compile("{/d++}");
String[] parts = p.split(input);
StringBuilder builder = new StringBuilder("");
int limit = Math.min(args.length, parts.length);
for(int i = 0; i < limit; i++){
builder.append(parts[i]).append(args[i]);
}
return builder.toString();
}
我找到了解决问题的方法。
需要多一个变量,不能赋值给同一个变量
String data = readTextFile(this, R.raw.input);
String output = String.format(data, "world", "josh", "3");
我想从原始文件中读取数据并替换文本中的格式。
例如...在这样的原始文件中:
hello {0}, my name id {1}, my age is {2}....
当我使用 String.format 时,如下所示,文本失去了缩进。
String data = readTextFile(this, R.raw.input);
data = String.format(data, "world", "josh", "3");
有谁知道如何在不丢失缩进的情况下做到这一点?
您提供的代码看起来更像 String.format 例如来自 C#. String.format in Java 的代码不能这样工作,它更像 printf。
您可以像这样操纵您的输入。
String input = "hello %s, my name id %s, my age is %s";
String.format(input, "world", "josh", "3");
输出:
hello world, my name id josh, my age is 3
缩进应该相同
编辑
如果您想使用括号,您可以使用 MessageFormat.format
而不是 String.format
。
String messageInput = "hello {0}, my name id {1}, my age is {2}";
MessageFormat.format(messageInput,"world", "josh", "3");
您可以将 Regular Explessions 与这样的模式一起使用:"{/d++}"
:
String format (String input, String... args) {
Pattern p = Pattern.compile("{/d++}");
String[] parts = p.split(input);
StringBuilder builder = new StringBuilder("");
int limit = Math.min(args.length, parts.length);
for(int i = 0; i < limit; i++){
builder.append(parts[i]).append(args[i]);
}
return builder.toString();
}
我找到了解决问题的方法。
需要多一个变量,不能赋值给同一个变量
String data = readTextFile(this, R.raw.input);
String output = String.format(data, "world", "josh", "3");