当前位置: 首页 > 知识库问答 >
问题:

Java使用数组从文件中读取的 /kotlin格式字符串

龙景澄
2023-03-14

正如标题所说,我想知道在Java中是否有使用数组格式化字符串的简便方法。

让我举一个kotlin的例子。

var sentences = arrayOf("hello", "world")
var template = "Dialogue: ${sentences[0]}\n" +
                "Dialogue: ${sentences[1]}\n"

template.format(sentences)

print(template)

以上代码运行良好。那么Java呢?

对不起,我没有清楚地描述我的问题。当我遇到我的真实案例时,我发现我的代码现在无法工作。

事实上,模板是从文件中读取的。

var sentences = arrayOf("hello", "world")
var template = File("template.txt").readText()

template.format(sentences)
print(template)

和模板。txt文件包含:

Dialogue: ${sentences[0]}
Dialogue: ${sentences[1]}

如您所见,我想读取文件,然后格式化结果。

另外,对于这个问题我很抱歉。因为它似乎被更改为如何格式化从文件中读取的字符串。

共有3个答案

朱睿
2023-03-14

使用%s替换模板文件。然后,Kotlin(Java)将为每个参数调用toString方法,并根据参数的顺序替换它们。

//template.txt
%s magnificent %s!

//Main.kt
val sentences = arrayOf("hello", "world")
val template = File("template.txt").readText()

template.format(sentences) // hello magnificent world!
祝俊雄
2023-03-14

您可以使用字符串。format():

String[] sentences = { "hello", "world" };
String template = "Dialogue: %s%nDialogue: %s%n";
String result = String.format(template, arr[0], arr[1]);
尚楚
2023-03-14

上面的代码完全错误地使用了字符串。格式。让我解释一下原因。

在前两行中:

var sentences = arrayOf("hello", "world")
var template = "Dialogue: ${sentences[0]}\n" +
              "Dialogue: ${sentences[1]}\n"

在这里,模板已经在那里了,它是一个String,它的值是“对话:你好\n对话:世界”,这就是你看到的结果。

如果您不信任我,请尝试将句子替换为不存在的变量名。您会收到编译错误,因为字符串在您创建它时正好连接。“字符串模板”只是的语法糖。

然后,您调用了模板。格式,实际上是字符串。格式,不使用返回的字符串。

由于这在Kotlin中已经是错误的,因此您可以在Java中轻松地执行相同的操作:

String[] sentences = new String { "hello", "world" };
String template = "Dialogue: " + sentences[0] + "\n" +
                  "Dialogue: " + sentences[1] + "\n";

template.format(sentences);

System.out.print(template);

此代码等于您给出的Kotlin代码。

我想你想要这个:

String template = String.format("Dialogue: %s%nDialogue: %s%n", sentences);
System.out.print(template);
 类似资料:
  • 我希望你帮助我理解我应该如何做以下事情: 我有一个包含由空格“”分隔的整数的文件。我需要读取所有整数,对它们进行排序,并将它们作为字符串写入另一个文件。我写了一个代码,但是我一个字符一个字符地读,把这个单词放在一个字符子数组[Max_Int]中,当我遇到“”时,我把这些字符,现在是一个字符串,在原子化后放到另一个主Int数组中,直到到达文件的末尾,一个字符串接一个字符串,然后我对它们进行排序并将它

  • 我有一个字符串的格式: 其中A,B,C,D将是整数。我想从这个字符串中提取A,B,C,D。A、B、C、D可以是单位数或多位数的整数,我现在并不真正关心验证(比如C、D理想情况下在0到59之间),因为这可以在以后处理。 在Java中实现这一点的最佳方法是什么?

  • 我在从字符串数组中获取唯一字母和数字,然后返回它们时遇到问题。我遇到了格式问题。 给定的输入是:([abc,123,efg]),应该返回abcefg123 然而,矿山回报:abc123efg 我怎样才能解决这个问题? 到目前为止,我的方法是: }

  • 我经常访问这个网站,但我遇到了一些我无法回答的问题。这是类似于其他几个职位,在这里,但我还没有找到一个答案,我正在寻找。 需要注意的是,这是学校课程的一部分,目前这是一个更大的java项目的独立java类。目前,我无法编辑. txt文件,并且仅限于使用以下资源: 标准JDK资源 使用以下列表: 每个条目由制表符分隔。 我当前的java代码如下: 我当前的输出如下:john。doe 108DE81C

  • 问题内容: 我正在编写一个简单的子手程序。我在打开文件,然后将数据存储到数组时遇到困难。我似乎不知道该怎么做。这是针对学校项目的,因此,如果逻辑似乎不必要,请怪男人:) 我有一个包含十个单词的文本文件(words.txt)。它们在文件中,并且每个文件之间都有一行。它们需要导入到数组中。有人愿意帮助一个有抱负的年轻程序员吗?谢谢你提供的所有帮助! 问题答案: 我建议您使用(例如)和(使用构造它,然后

  • 假设我有一个文本文件,每行有一个数字代码和一个字符串标签: 我如何打印前面的非零数字和每行的前两个单词的总和?假设数字总是4位数,单词与数字之间用一个空格隔开。例如,我会得到: 我试图初始化这个,但我不知道从这里去哪里