格式化文本文件的输出-Java
如何更改代码,使其按我希望的方式打印?我希望首先打印userNameGenerator,前面有一个箭头(->),然后显示personName,旁边有打开和关闭的方括号([])。我还想删除结尾的逗号。我已经做了一点,如下所示: 需要更改的代码:格式化文本文件的输出-Java,java,Java,如何更改代码,使其按我希望的方式打印?我希望首先打印userNameGenerator,前面有一个箭头(->),然后显示personName,旁边有打开和关闭的方括号([])。我还想删除结尾的逗号。我已经做了一点,如下所示: 需要更改的代码: Set<String> newStrSet = new HashSet<>(); for(int i = 0; i < personFile.size(); i++) { String[] regionSplit =
Set<String> newStrSet = new HashSet<>();
for(int i = 0; i < personFile.size(); i++) {
String[] regionSplit = personFile.get(i).getUserNameGenerator().split(", ");
for(int j = 0; j < regionSplit.length; j++) {
newStrSet.add(regionSplit[j]);
}
}
for (String p: newStrSet) {
System.out.printf("%s -> [", p);
for (Codes2 s: personFile) {
if (s.getUserNameGenerator().contains(p)) {
System.out.printf("%s, ", s.getPersonName());
}
}
System.out.println("]");
}
我希望输出的外观如下:
Dompteuse -> [Imran Sullivan]
Deservedness -> [Eadie Jefferson]
Ostracize -> [Eadie Jefferson]
Abattoir -> [Angel Whitehouse]
Choreography -> [Imran Sullivan, Taylor Vargas, Priya Oliver]
我正在查看每个循环的双循环,我相信我已经缩小了您的问题范围。在第二个for each循环中,您打印出此人的姓名,后跟逗号。但对每个元素都要这样做,包括最后一个元素。在其中包含一个条件,即一旦达到行的长度,只打印名称而不是逗号
for (Codes2 s: personFile) {
if (s.getUserNameGenerator().contains(p)) {
//Try including conditional for the last element here
System.out.printf("%s, ", s.getPersonName());
}
}
希望这有帮助 我正在查看每个循环的双精度,我相信我已经缩小了您的问题范围。在第二个for each循环中,您打印出此人的姓名,后跟逗号。但对每个元素都要这样做,包括最后一个元素。在其中包含一个条件,即一旦达到行的长度,只打印名称而不是逗号
for (Codes2 s: personFile) {
if (s.getUserNameGenerator().contains(p)) {
//Try including conditional for the last element here
System.out.printf("%s, ", s.getPersonName());
}
}
希望这有帮助 您需要更改处理打印的
for
循环,以便它仅在个人配置文件中有其他元素时打印逗号
以下是我将尝试的内容(请注意,我无法测试此代码,因为我无法访问您的数据文件):
for(字符串p:newStrSet){
System.out.printf(“%s->[”,p);
布尔值=false;
//对每个索引使用索引而不是a,以便
//检查是否有下一个元素
对于(int i=0;i
您需要更改处理打印的for
循环的,以便它仅在个人配置文件中有其他元素时打印逗号
以下是我将尝试的内容(请注意,我无法测试此代码,因为我无法访问您的数据文件):
for(字符串p:newStrSet){
System.out.printf(“%s->[”,p);
布尔值=false;
//对每个索引使用索引而不是a,以便
//检查是否有下一个元素
对于(int i=0;i
逗号和闭括号打印在新行中大括号放置有问题。它现在应该可以工作了。代码有问题,因为控制台中发生了这样的事情:Choreography->[,,,,Taylor Vargas,,,,,,]
我没有意识到你没有打印某些人。这行得更好吗?有些行得通,有些行得通:[Tyler Green,Andre Bishop]
[Angelina Rose,]
逗号和闭括号打印在新行中,大括号的位置有问题。它现在应该可以工作了。代码有问题,因为控制台中发生了这样的事情:Choreography->[,,,,Taylor Vargas,,,,,,]
我没有意识到你没有打印某些人。这行得通吗?有些行得通,有些行得通:[Tyler Green,Andre Bishop]
[Angelina Rose,]
Dompteuse -> [Imran Sullivan]
Deservedness -> [Eadie Jefferson]
Ostracize -> [Eadie Jefferson]
Abattoir -> [Angel Whitehouse]
Choreography -> [Imran Sullivan, Taylor Vargas, Priya Oliver]
for (Codes2 s: personFile) {
if (s.getUserNameGenerator().contains(p)) {
//Try including conditional for the last element here
System.out.printf("%s, ", s.getPersonName());
}
}
for (String p: newStrSet) {
System.out.printf("%s -> [", p);
boolean needComma = false;
// Use indices instead of a for-each so you can
// check if there's a next element
for (int i = 0; i < personFile.size(); ++i) {
Codes2 s = personFile.get(i);
if (s.getUserNameGenerator().contains(p)) {
// Only print out the comma and space if there's a preceding element
if (needComma) {
System.out.print(", ");
}
System.out.printf("%s", s.getPersonName());
needComma = true;
}
}
System.out.println("]");
}