如何从文件中读取原始文件并在 String.format 中使用
Posted
技术标签:
【中文标题】如何从文件中读取原始文件并在 String.format 中使用【英文标题】:how to read from file raw and use in String.format 【发布时间】:2018-01-13 21:51:51 【问题描述】:我想从原始文件中读取数据并替换文本中的格式。
例如...在这样的原始文件中:
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");
有谁知道如何在不丢失缩进的情况下做到这一点?
【问题讨论】:
第一,我认为0 1 ...
不起作用,java 使用%d
表示数字,%s
表示字符串,第二,text loses its indentation
的人是什么?你能发布预期和实际输出吗?
你为什么要使用文件? ***.com/a/20887690/2308683
因为我的文字很大...
【参考方案1】:
您提供的代码看起来更像 String.format,例如来自 C#。 Java 中的 String.format 不是这样工作的,它更像是 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");
【讨论】:
其实Java确实支持...***.com/questions/5324007/… 括号里是否可以多次使用,我的意思是:String messageInput = "hello 0, my name id 1, my age is 0"; MessageFormat.format(messageInput,"world", "josh"); @chaim 是的【参考方案2】:您可以将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();
【讨论】:
【参考方案3】:我找到了解决问题的方法。
还有一个变量需要,不可能赋值给同一个变量
String data = readTextFile(this, R.raw.input);
String output = String.format(data, "world", "josh", "3");
【讨论】:
以上是关于如何从文件中读取原始文件并在 String.format 中使用的主要内容,如果未能解决你的问题,请参考以下文章
如何从文件中读取数据并在 QT 的 QEditText 框中显示