作者B2Bruney (↙㊣★煞气aBB尼☆㊣↗)
看板java
标题[问题] 如何判断字串内是否含有特定文字
时间Wed Aug 10 14:22:39 2011
各位先进好 我知道要怎麽判断两个字串是否相同
那想请问一下我要怎麽判断是否含有特定文字呢
ex:文字档里面其中一行的内容是「各位先进好 我知道要怎麽判断两个字串是否相同」
然後我在输入的地方输入:「先进」
系统就把整行印出来,请问这样怎麽做到呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.37.28
2F:推 LaPass:关键字:正规表示式 不管你用哪套语言都会遇到的东西 08/10 14:51
3F:推 LaPass:唔.... 1F那种方法比较方便,不过比对比较复杂的东西时,用 08/10 14:56
4F:推 LaPass:java.util.regex 可以解决复杂的比对、置换功能 08/10 15:03
5F:→ james732:因为我很懒惰,所以用简单的方法就好 XD 08/10 15:05
6F:推 mars90226:大概是 /先进.*$/ 08/10 15:45
我目前是采用1楼J大的方式
不过我有个问题 我是输入文字 然後去和记事本里面做比对
输入中文字的时候 似乎都无法比对
还有从记事本里面回传回来的中文也会显示空的方格(乱码)
想请问一下各位要怎麽处理
※ 编辑: B2Bruney 来自: 220.135.37.28 (08/10 16:34)
7F:→ james732:编码问题吧,我猜记事本里的是big5 08/10 18:02
8F:→ choufeng:恩恩~感觉你是JAVA新新手厚! 文件或书要先多读一点 08/10 20:45
是阿 我才刚学没有很久 我有在看书
文件一直都看得不是很懂 不过我有尽量再看
9F:→ darkk6:openStream 的时候指定编码 08/11 01:24
好的谢谢你 我试试看
※ 编辑: B2Bruney 来自: 220.135.37.28 (08/11 12:28)
抱歉我刚刚改了几个地方结果一直发生错误 可不可以请版上的各位帮我看看
File myFile = new File("D:\\JavaUsersDataSource.txt");
FileReader fileReader = null;
try {
fileReader = new FileReader(myFile);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
BufferedReader reader = new BufferedReader(fileReader);
buf = text.field4.getText();
String str1 = "";
text.users.setText("");
text.label8.setText("搜寻联络人名称或地址中包含" + buf + "的结果是:
");
try {
while((str1=reader.readLine()) != null)
{
if(str1.indexOf(buf) != -1)
{
text.users.setText(text.users.getText()+str1+'\n');
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我这样要把编码加在哪里比较好
因为後来还要显示在FRAME上
所以我觉得是要把记事本的每一行抓进来的时候做编码
可是我不太会改 可以请高手指导一下吗 谢谢
※ 编辑: B2Bruney 来自: 220.135.37.28 (08/11 13:34)
10F:→ darkk6:用Scanner 吧XDDD 08/12 08:49
11F:→ B2Bruney:解决了 谢谢大家的帮忙:) 08/12 14:28