Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在for循环中如何将数据写入字符串_Java_Android_String_Sqlite_For Loop - Fatal编程技术网

Java 在for循环中如何将数据写入字符串

Java 在for循环中如何将数据写入字符串,java,android,string,sqlite,for-loop,Java,Android,String,Sqlite,For Loop,所以基本上我有一个数据库,它是一个for循环。每次它都会给出不同的分数,我需要将其保存到字符串(或文件,但我想字符串会更容易,因为我需要在每次调用数据库时将其清空) 我想通过循环存储所有分数,然后在每个分数后添加一个,以使它们分开,但是我的代码不起作用,因为代码的一部分在for循环之外。我该如何解决这个问题?或者是否有更好的/其他方法来完成我想要创建的内容 DatabaseHandler db = new DatabaseHandler(camera.this); List<Databas

所以基本上我有一个数据库,它是一个for循环。每次它都会给出不同的分数,我需要将其保存到字符串(或文件,但我想字符串会更容易,因为我需要在每次调用数据库时将其清空)

我想通过循环存储所有分数,然后在每个分数后添加一个,以使它们分开,但是我的代码不起作用,因为代码的一部分在for循环之外。我该如何解决这个问题?或者是否有更好的/其他方法来完成我想要创建的内容

DatabaseHandler db = new DatabaseHandler(camera.this);
List<Database> contacts = db.getAllContacts();
for (Database contact : contacts) {
    String test = contact.getMP();
    StringWriter stringWriter = new StringWriter();
    PrintWriter printWriter = new PrintWriter(stringWriter);
    printWriter.println(test);
}  
printWriter.flush();
printWriter.close();
return stringWriter.toString();
DatabaseHandler db=newdatabasehandler(camera.this);
List contacts=db.getAllContacts();
用于(数据库联系人:联系人){
字符串测试=contact.getMP();
StringWriter StringWriter=新StringWriter();
PrintWriter PrintWriter=新的PrintWriter(stringWriter);
printWriter.println(测试);
}  
printWriter.flush();
printWriter.close();
返回stringWriter.toString();
试试这个

DatabaseHandler db = new DatabaseHandler(camera.this);
List<Database> contacts = db.getAllContacts();
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
boolean first = true;
for (Database contact : contacts) {
   if(!first) printWriter.print(", ");
   else first = false;
   String test = contact.getMP();
   printWriter.print(test);      
}      
printWriter.flush();
printWriter.close();
return stringWriter.toString();
DatabaseHandler db=newdatabasehandler(camera.this);
List contacts=db.getAllContacts();
StringWriter StringWriter=新StringWriter();
PrintWriter PrintWriter=新的PrintWriter(stringWriter);
布尔值优先=真;
用于(数据库联系人:联系人){
如果(!first)printWriter.print(“,”);
else first=false;
字符串测试=contact.getMP();
打印(测试);
}      
printWriter.flush();
printWriter.close();
返回stringWriter.toString();
希望这有助于您享受工作

试试这个

DatabaseHandler db = new DatabaseHandler(camera.this);
List<Database> contacts = db.getAllContacts();
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
boolean first = true;
for (Database contact : contacts) {
   if(!first) printWriter.print(", ");
   else first = false;
   String test = contact.getMP();
   printWriter.print(test);      
}      
printWriter.flush();
printWriter.close();
return stringWriter.toString();
DatabaseHandler db=newdatabasehandler(camera.this);
List contacts=db.getAllContacts();
StringWriter StringWriter=新StringWriter();
PrintWriter PrintWriter=新的PrintWriter(stringWriter);
布尔值优先=真;
用于(数据库联系人:联系人){
如果(!first)printWriter.print(“,”);
else first=false;
字符串测试=contact.getMP();
打印(测试);
}      
printWriter.flush();
printWriter.close();
返回stringWriter.toString();
希望这有助于享受您的工作

尝试以下方法:

StringBuilder sb = new StringBuilder();
for (Database contact : contacts) { 
    if(sb.length > 0) {
        sb.append(", ");
    }
    sb.append(contact.getMP());
}
...
sb.toString();
试试这个:

StringBuilder sb = new StringBuilder();
for (Database contact : contacts) { 
    if(sb.length > 0) {
        sb.append(", ");
    }
    sb.append(contact.getMP());
}
...
sb.toString();

在此处使用StringBuilder,而不是PrintWriter。您为什么不使用StringBuilder\StringBuffer并将字符串保存在列表中?似乎回答得不错,将我的代码更改为Stringbuilder one,因为它也完全符合我的要求^^谢谢您在这里使用Stringbuilder,而不是PrintWriter。您为什么不使用Stringbuilder\StringBuffer并将字符串保存在列表中?似乎回答得很好,将我的代码更改为Stringbuilder,因为它也完全符合我的要求^^^谢谢,这非常有效!我将在2分钟内将此设置为已接受答案;)谢谢你,这很好用!我将在2分钟内将此设置为已接受答案;)这实际上是我做这件事的方式,但我总是喜欢更正答案中的代码。这实际上是我做这件事的方式,但我总是喜欢更正答案中的代码。