Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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从文本文件中读取整数和字符串,然后使用这些整数和字符串_Java_String_Integer - Fatal编程技术网

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行?您必须根据哪些规则来决定忽略哪些内容、添加哪些内容和乘以哪些内容?