Java 将多个字符串保存为一个字符串
我想在一个文件中保存多个字符串。问题是,我不知道它可能有多少个字符串。 我正在创建一个程序,从文本文件中读取卡路里并将其存储在相应的数组中 以下是部分文本:Java 将多个字符串保存为一个字符串,java,string,file,Java,String,File,我想在一个文件中保存多个字符串。问题是,我不知道它可能有多少个字符串。 我正在创建一个程序,从文本文件中读取卡路里并将其存储在相应的数组中 以下是部分文本: Description of food Fat Food Energy Carbohydrate Protein Cholesterol Weight Saturated Fat (Grams)
Description of food Fat Food Energy Carbohydrate Protein Cholesterol Weight Saturated Fat
(Grams) (calories) (Grams) (Grams) (Milligrams) (Grams) (Grams)
APPLES, RAW, PEELED, SLICED 1 CUP 0 65 16 0 0 110 0.1
APPLES, RAW, UNPEELED,2 PER LB1 APPLE 1 125 32 0 0 212 0.1
APPLES, RAW, UNPEELED,3 PER LB1 APPLE 0 80 21 0 0 138 0.1
APRICOT NECTAR, NO ADDED VIT C1 CUP 0 140 36 1 0 251 0
现在对于食物名称,我有一个数组foodName。我将读取整个字符串,直到我达到一个整数,即数量
以下是我迄今为止所做的工作:
Scanner input = new Scanner("Calories.txt");
while (input.hasNext()) {
String[] words = input.next().split(" ");
int lastI;
for (int i=0; i < words.length; i++) {
if (isNumeric(words[i])) {
lastI = i;
for(int j=lastI; j>=0; j++){
//What should I put here?
}
}
}
}
public static boolean isNumeric(String str) {
try {
double d = Double.parseDouble(str);
} catch (NumberFormatException nfe) {
return false;
}
return true;
}
扫描仪输入=新扫描仪(“carries.txt”);
while(input.hasNext()){
String[]words=input.next().split(“”);
内拉斯蒂;
for(int i=0;i=0;j++){
//我应该在这里放什么?
}
}
}
}
公共静态布尔值isNumeric(字符串str){
试一试{
double d=double.parseDouble(str);
}捕获(NumberFormatException nfe){
返回false;
}
返回true;
}
对于最内部的for循环,我跟踪最后一个索引,这样我就可以从它开始向后走
问题1:如果我在第二行向后走,我将复制两行
问题2:如何将名称的所有字符串保存在foodName的一个索引中
非常感谢您提供的所有帮助:)您在Java中寻找的东西称为
StringBuilder
。您可以像使用字符串一样使用它,并继续附加到它上
File file = new File("output.txt");
Scanner input = new Scanner(file);
StringBuilder sb = new StringBuilder();
while (input.hasNextLine()) {
String[] words = input.nextLine().split(" ");
for (int i = 0; i < words.length; i++) {
if (isNumeric(words[i])) {
break;
}
sb.append(words[i] + " ");
}
System.out.println(sb);
sb = new StringBuilder();
}
input.close();
您在Java中寻找的称为
StringBuilder
。您可以像使用字符串一样使用它,并继续附加到它上
File file = new File("output.txt");
Scanner input = new Scanner(file);
StringBuilder sb = new StringBuilder();
while (input.hasNextLine()) {
String[] words = input.nextLine().split(" ");
for (int i = 0; i < words.length; i++) {
if (isNumeric(words[i])) {
break;
}
sb.append(words[i] + " ");
}
System.out.println(sb);
sb = new StringBuilder();
}
input.close();
您在Java中寻找的称为
StringBuilder
。您可以像使用字符串一样使用它,并继续附加到它上
File file = new File("output.txt");
Scanner input = new Scanner(file);
StringBuilder sb = new StringBuilder();
while (input.hasNextLine()) {
String[] words = input.nextLine().split(" ");
for (int i = 0; i < words.length; i++) {
if (isNumeric(words[i])) {
break;
}
sb.append(words[i] + " ");
}
System.out.println(sb);
sb = new StringBuilder();
}
input.close();
您在Java中寻找的称为
StringBuilder
。您可以像使用字符串一样使用它,并继续附加到它上
File file = new File("output.txt");
Scanner input = new Scanner(file);
StringBuilder sb = new StringBuilder();
while (input.hasNextLine()) {
String[] words = input.nextLine().split(" ");
for (int i = 0; i < words.length; i++) {
if (isNumeric(words[i])) {
break;
}
sb.append(words[i] + " ");
}
System.out.println(sb);
sb = new StringBuilder();
}
input.close();
查看
StringBuilder
类。这可能是您想要的。您能更改文件的格式吗?在使用平面文件时,通常需要使用标准格式,例如CSV(逗号分隔值)文件。这样,您可以在每个逗号上拆分。然后循环遍历数组中的每个值,直到找到一个数字,然后移到下一行。for(int j=lastI;j>=0;j++)
这是一个非常糟糕的主意。另外,你的问题似乎不清楚。你到底想要什么作为一个字符串?你是指字符串数组还是单个字符串?那个文件示例是如何格式化的吗?我希望在一个字符串中包含食物名称的多个字符串。说foodName[0]=“苹果,生的,去皮的,切片的”;是的。请查看StringBuilder
类。这可能是您想要的。您能更改文件的格式吗?在使用平面文件时,通常需要使用标准格式,例如CSV(逗号分隔值)文件。这样,您可以在每个逗号上拆分。然后循环遍历数组中的每个值,直到找到一个数字,然后移到下一行。for(int j=lastI;j>=0;j++)
这是一个非常糟糕的主意。另外,你的问题似乎不清楚。你到底想要什么作为一个字符串?你是指字符串数组还是单个字符串?那个文件示例是如何格式化的吗?我希望在一个字符串中包含食物名称的多个字符串。说foodName[0]=“苹果,生的,去皮的,切片的”;是的。请查看StringBuilder
类。这可能是您想要的。您能更改文件的格式吗?在使用平面文件时,通常需要使用标准格式,例如CSV(逗号分隔值)文件。这样,您可以在每个逗号上拆分。然后循环遍历数组中的每个值,直到找到一个数字,然后移到下一行。for(int j=lastI;j>=0;j++)
这是一个非常糟糕的主意。另外,你的问题似乎不清楚。你到底想要什么作为一个字符串?你是指字符串数组还是单个字符串?那个文件示例是如何格式化的吗?我希望在一个字符串中包含食物名称的多个字符串。说foodName[0]=“苹果,生的,去皮的,切片的”;是的。请查看StringBuilder
类。这可能是您想要的。您能更改文件的格式吗?在使用平面文件时,通常需要使用标准格式,例如CSV(逗号分隔值)文件。这样,您可以在每个逗号上拆分。然后循环遍历数组中的每个值,直到找到一个数字,然后移到下一行。for(int j=lastI;j>=0;j++)
这是一个非常糟糕的主意。另外,你的问题似乎不清楚。你到底想要什么作为一个字符串?你是指字符串数组还是单个字符串?那个文件示例是如何格式化的吗?我希望在一个字符串中包含食物名称的多个字符串。说foodName[0]=“苹果,生的,去皮的,切片的”;是的。任何时候,我都很高兴能帮上忙!任何时候,我都很高兴能帮上忙!任何时候,我都很高兴能帮上忙!任何时候,我都很高兴能帮上忙!