(1) 建立一个文本文件file1.txt,里面包含多行内容,其中有一组手机号码和座机号码,分散在文件里。
(2) 建立GUI界面,读文件file1.txt显示。
(3) 使用正则表达式的字符串匹配查找功能,从文本文件里找出所有电话号码并存放在Collection列表中,排序后,显示在GUI界面上。
读文件显示到界面的关键代码
class app1 implements ActionListener {
public String readToString(String fileName) {
String encoding = "UTF-8";
File file = new File(fileName);
Long filelength = file.length();
byte[] filecontent = new byte[filelength.intValue()];
try {
FileInputStream in = new FileInputStream(file);
in.read(filecontent);
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
return new String(filecontent, encoding);
} catch (UnsupportedEncodingException e) {
System.err.println("The OS does not support " + encoding);
e.printStackTrace();
return null;
}
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button1) {
String s = readToString("file1.txt");
Test.text1.setText(String.valueOf(s));
}
}
}
若要完整程序,请先采纳。
(1) 建立一个文本文件file1.txt,里面包含多行内容,其中有一组手机号码和座机号码,分散在文件里。
这个没说用编程,编程也得自己输入吧。
你可以用记事本创建类似如下的内容
大家好
我叫小花狗
我住在天津市
我最爱吃狗不理
我的电话是 13333333333
我的座机是 010-12345678
我还有个电话是 18888888888
以上是所有的内容
(3)
Collection c = new ArrayList();
FileReader fr = new FileReader("file1.txt");
BufferedReader br = new BufferedReader(fr);
String str;
while ((str = br.readLine()) != null) {
Pattern pattern = Pattern.compile("(?<!\\d)(?:(?:1[358]\\d{9})|(?:861[358]\\d{9}))(?!\\d)");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
c.add(matcher.group());
}
}
br.close();
c.sort();
String s1 = "";
for (String s: c) s1 += (s + "\r\n");
Test.text1.setText(String.valueOf(s1));