我需要做一份工资单报告。您必须键入包含文本信息的文件。程序检查文件是否存在。然后你创建程序的输出文件。程序在文本文件中打印工作人员的姓名,小时和费率。我程序只运行最后一组数字。
import java.text.NumberFormat;
import javax.swing.JTextArea;
import java.awt.Font;
import javax.swing.JOptionPane;
import java.util.Scanner;
import java.io.*;
public class Homework {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
String answer, filename;
filename = JOptionPane.showInputDialog("Enter the Input File Path:");
File input = new File(filename);
if (!input.exists()) {
JOptionPane.showMessageDialog(null, "The input file:\n" + filename + "\ndoes not exist!");
System.exit(0);
}
filename = JOptionPane.showInputDialog("Enter the Output File Path:");
File output = new File(filename);
if (output.exists()) {
answer = JOptionPane.showInputDialog("The output file alaready exist!\nDo you want to overwrite it?");
if (!answer.toLowerCase().equals("yes")) {
System.exit(0);
}
}
PrintWriter outFile = new PrintWriter(filename);
Scanner in = new Scanner(input);
double numberWords = 0, countNumber = 0;
double value;
String num, words, message;
String amtStr, line = "";
String alphaRegex = ".*[A-Za-z].*";
String numRegex = ".*[0-9].*";
while (in.hasNext()) {
words = in.next();
if (words.matches(alphaRegex)) {
numberWords++;
message = "The name is "+words+"\n"; //The Line is but leave +line+
JOptionPane.showMessageDialog (null, message);
} else if (words.matches(numRegex)) {
countNumber++;
num = in.next();
message = "The number is "+num+"\n"; //The Line is but leave +line+
JOptionPane.showMessageDialog (null, message);
}
}
}
}
答案 0 :(得分:2)
导致问题的不是你的正则表达式。这是while循环中的if语句。当单词匹配numRegex时,比你将in.next()指定为num,导致扫描程序跳过当前单词并选择下一个单词,那么在你的情况下恰好也是一个数字。
用这个替换while循环,它将起作用(我已经测试了代码):
$('#gallery img').each(function(){
$(this).on('click', function(){
var newIMG = $(this).clone();
$('#bigIMG').html(newIMG);
});
});
答案 1 :(得分:0)
我假设您正在寻找正则表达式来识别文本中的浮点数。如果是这样的话,请点击这里:
"(\\.\\d+)|(\\d+(\\.\\d+)?)"
这匹配任何单个小数后跟一个或多个数字或任何数字序列,后跟可选的小数,后跟一个或多个数字。请注意,如果这是一个问题,这不会解决前导零。
本网站是构建和测试正则表达式的绝佳资源: