Java从文本文件中读取整数和字符串,然后使用这些整数和字符串
我试图从文本文件中读取一些数据,其格式如下:Java从文本文件中读取整数和字符串,然后使用这些整数和字符串,java,string,integer,Java,String,Integer,我试图从文本文件中读取一些数据,其格式如下: String (Monday) String (M141) Integer (16) Integer (6) Double (10.5) Double (10.5) Integer (20) Integer (20) Integer (20) Integer (30) 我已设法读取文件并尝试使用nextLine显示这些值,但在使用下一行打印出这些值后,我需要处理需要添加的数据(30,20,20,20,10.5,10.5),并将其乘以(16)以获得最
String (Monday)
String (M141)
Integer (16)
Integer (6)
Double (10.5)
Double (10.5)
Integer (20)
Integer (20)
Integer (20)
Integer (30)
我已设法读取文件并尝试使用nextLine显示这些值,但在使用下一行打印出这些值后,我需要处理需要添加的数据(30,20,20,20,10.5,10.5),并将其乘以(16)以获得最终值,但我无法想出一种方法,我试图使用数组存储它们,然后操纵它们,但没有成功。存在多个具有相同格式但不同整数的数据集。请帮助我理解如何去做这件事,我已经试了一天多了。以下是我目前的代码:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;
public class Main {
static Scanner console = new Scanner(System.in);
public static void main(String[] args) throws FileNotFoundException {
Scanner reader = new Scanner(new File("C:\\data.txt"));
System.out.println(reader.nextLine());
System.out.println(reader.nextLine());
System.out.println(reader.nextInt());
System.out.println(reader.nextInt());
System.out.println(reader.nextDouble());
System.out.println(reader.nextDouble());
System.out.println(reader.nextInt());
System.out.println(reader.nextInt());
System.out.println(reader.nextInt());
System.out.println(reader.nextInt());
}
}
编辑:
我需要将(10.5)(10.5)(20)(20)(30)相加,然后乘以16。如果您在查找Java子字符串时遇到问题,请使用Java子字符串。这很有帮助。还可以搜索Java IndexOf。这两种方法对你会有很大帮助。 例如 字符串a=“Bob(10)”;
字符串x=a.substring(a.indexof(“”),a.indexof(“”) 听起来好像文件是用行写的,试试看
Scanner reader = new Scanner(new File("C:\\data.txt"));
String monday = reader.nextLine();
// splits up the string into pieces, seperated at the space
String[] parts = monday.split(" ");
String day = parts[0];
// you may have to use Integer.parseInt() here I don't remember
int hourMutiplier = parts[2];
int people = parts[3];
double wages = 0;
for( int i = 4; i < people + 3; i++){
wages += parts[i];
}
double finalWages = wages * hourmutiplier;
...
Scanner reader=新的扫描仪(新文件(“C:\\data.txt”);
字符串monday=reader.nextLine();
//把绳子分成几段,在空间上分开
String[]parts=monday.split(“”);
字符串日期=零件[0];
//您可能必须在这里使用Integer.parseInt(),我不记得了
int hourMutiplier=零件[2];
int人员=零件[3];
双倍工资=0;
对于(inti=4;i
或者类似的,语法可能有点不正确。所以java有一个奇怪的问题,reader.nexInt()不会在字符串末尾提取新行字符。如果你在那之后再扫描的话,只需要一个旁注。只要把所有整数都当作双倍数,把它们加起来就行了。如果以后需要使用数据,可以使用数组或数组列表。如果我们得到你的数据样本,也会有很大帮助。不确定你到底想要完成什么。您希望提取的数据采用什么格式?这些值是某个对象的属性吗?在我看来,您必须首先解析类型信息,然后切换可能的类型以正确解析括号中的值。这就是你遇到的问题吗?我正试图从我所做的文件中读取数据并打印出来。我需要将文件中的值相加,忽略文件的某些部分。这是我的数据:星期一M14116610.5100.52030这个数据正在被读取,16是这个人工作的小时数。30、20、20、20、10.5和10.5需要相加并乘以16,所以这是一个文件的一行还是10行?您必须根据哪些规则来决定忽略哪些内容、添加哪些内容和乘以哪些内容?