我有一个文本文件,其中包含以下格式的记录,
Kernel Object
我需要计算每月的日期并打印如下,
03-Jan-2018 2 1 12 N MT680N 617 U Cecil
我已尝试如下但无法获得预期结果,我们非常感谢您的指导。
当前代码如下所示:
Jan Feb ...
5 2 ...
忽略以下行,该行用于根据列中的预定义值跳过记录。
public static void displaySummaryofContracts()
{
int numberOf3N4Lines = 0;
int totalLines = 0;
String filePath = "test.txt";
String arr[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
String space = " ";
ArrayList<String> numberOf3N4s= new ArrayList<String>();
try (BufferedReader bufr = new BufferedReader(new FileReader(filePath))){
String lineText = null;
while ((lineText = bufr.readLine()) != null){
String[] col = lineText.split("\t");
if(col[2].equals("3") || col[2].equals("4")){
numberOf3N4s.add(lineText);
numberOf3N4Lines++;
}
totalLines++;
}
}
catch (IOException | ArrayIndexOutOfBoundsException ioex){
System.err.println(ioex);
}
System.out.println("Total Number of Lines: " + totalLines);
System.out.println("Total Number of Lines equivalent to 3 and 4: " + numberOf3N4s);
System.out.println("Number of dates connected to each month:");
System.out.println(arr[0] + space + arr[1] + space + arr[2] + space + arr[3] + space + arr[4] + space + arr[5] +
space + arr[6] + space + arr[7] + space + arr[8] + space + arr[9] + space + arr[10] + space + arr[11]);
}
答案 0 :(得分:0)
在声明arr[]
时创建另一个数组,以便您可以将信息保存在那里,并在以后arr[]
同时输出。 (另外,如果你不知道它的具体尺寸,只需使用一个清单)
所以结果将是
的结果String arr[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
String secondArray[] = new String[12];
String space = " ";
在这里,您可以执行操作并将它们添加到数组
String result = xxx
arr[0] = result;
要在所有内容的最后输出它们,首先要显示包含标题的数组arr[]
,然后再显示包含结果的第二个数组
for(String s : arr) {
System.out.print(s + " ");
}
System.out.println();
for(String s : secondArray) {
System.out.print(s + " ");
}
这将打印
Jan Feb Mar [...]
10 14 11 [...]
要使打印工作,您必须使用print(),而不是打印 ln ()。此外,如果您希望它格式良好,您可以使用printf而不是print()。有了它你就可以这样做
Jan Feb Mar [...]
10 14 11 [...]
答案 1 :(得分:0)
您可以尝试使用变量name和counter创建一个对象Month。 在构造函数中设置名称:
const schedule = (fn, seconds, runNow = false) => {
Meteor.setTimeout(() => {
try {
Promise.resolve(fn()).then(()=>{
schedule(fn, seconds, false)
}).catch((err)=>{
log.error(err)
schedule(fn, seconds, false)
})
} catch (e) {
log.error(e);
}
}, runNow ? 0 : seconds * 1000);
};
在主类中创建一个方法:
public string name;
public int counter;
public Month(string name){this.name = name;counter = 0;}
然后创建一个全局对象数组,如:
public void addMonth(String month) {
Month m = new Month(month);
monthList.add(m);
}
然后在你的主要:
List<Month> monthList = new ArrayList<Month>();
剩下的就是检查月份(从文本文件行获得的月份)是否等于month.name
String arr[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
for(String s: arr)
{
addMonth(s);
}
如果要输出
for(Mont m: monthList)
{
if(month == m.name)
{
m.counter++;
}
}
确切的间距我不知道,但我认为你可以解决这个问题。