题目大概是这样:一个txt文件中有很多字符,比如:dstd!#$%GHdfasdfahpoh4891deiiqoe3981dfhih131345hdoihadf9387
现在要从这个文件里把所有的数字提取出来,应该用什么方法呢?最好几行具体代码。。比如什么函数?split()可以么?
还有一题是:一个txt文件中有很多字符,比如:ewrewr123dfqefrqewr123ewrqwer456rwtert456rtwergwgr123rkojow,
现在要统计123出现的次数和456出现的次数。。该怎么办呢。。。
求大神指点!求大神指点!求大神指点!求大神指点!
3 个解决方案
#1
用正则表达式,还有Pattern和Matcher类,去看这两个类的API吧,用起来简单明了
#2
我不会正则表达式,自己写代码实现了,效率可能不是很好,但是能完成题目要求的。
直接给代码了,虽然不是很好,你自己再琢磨琢磨吧。
题目一
题目二,简单实现,split()方法效率不是很好
题目二,这个相对上面的效率可能会好点。
直接给代码了,虽然不是很好,你自己再琢磨琢磨吧。
题目一
public static void main(String[] args) {
//读文件的代码就不用写了吧,假设文件内容已经读取到str变量中
String str="dstd!#$%GHdfasdfahpoh4891deiiqoe3981dfhih131345hdoihadf9387";
StringBuffer newStr=new StringBuffer();
byte[] arr=str.getBytes();
//遍历字符串的所有字符,判断为数字就保存起来
for (byte b : arr) {
if(b>=48 && b<=57)
newStr.append((char)b);
}
System.out.println("所有的数字:"+newStr);
}
题目二,简单实现,split()方法效率不是很好
public static void main(String[] args) {
String str="ewrewr123dfqefrqewr123ewrqwer456rwtert456rtwergwgr123rkojow,";
String[] arr=str.split("123");
System.out.println("123的出现次数:"+(arr.length-1));
}
题目二,这个相对上面的效率可能会好点。
public static void main(String[] args) {
String str="ewrewr123dfqefrqewr123ewrqwer456rwtert456rtwergwgr123rkojow,";
String str2="123";
String newStr=str.replaceAll(str2, "");
int len=0;
if(str.length()!=newStr.length()){
len=(str.length()-newStr.length())/str2.length();
}
System.out.println("123的出现次数:"+len);
}
#3
谢谢指点、、
#1
用正则表达式,还有Pattern和Matcher类,去看这两个类的API吧,用起来简单明了
#2
我不会正则表达式,自己写代码实现了,效率可能不是很好,但是能完成题目要求的。
直接给代码了,虽然不是很好,你自己再琢磨琢磨吧。
题目一
题目二,简单实现,split()方法效率不是很好
题目二,这个相对上面的效率可能会好点。
直接给代码了,虽然不是很好,你自己再琢磨琢磨吧。
题目一
public static void main(String[] args) {
//读文件的代码就不用写了吧,假设文件内容已经读取到str变量中
String str="dstd!#$%GHdfasdfahpoh4891deiiqoe3981dfhih131345hdoihadf9387";
StringBuffer newStr=new StringBuffer();
byte[] arr=str.getBytes();
//遍历字符串的所有字符,判断为数字就保存起来
for (byte b : arr) {
if(b>=48 && b<=57)
newStr.append((char)b);
}
System.out.println("所有的数字:"+newStr);
}
题目二,简单实现,split()方法效率不是很好
public static void main(String[] args) {
String str="ewrewr123dfqefrqewr123ewrqwer456rwtert456rtwergwgr123rkojow,";
String[] arr=str.split("123");
System.out.println("123的出现次数:"+(arr.length-1));
}
题目二,这个相对上面的效率可能会好点。
public static void main(String[] args) {
String str="ewrewr123dfqefrqewr123ewrqwer456rwtert456rtwergwgr123rkojow,";
String str2="123";
String newStr=str.replaceAll(str2, "");
int len=0;
if(str.length()!=newStr.length()){
len=(str.length()-newStr.length())/str2.length();
}
System.out.println("123的出现次数:"+len);
}
#3
谢谢指点、、