LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 845|回复: 10

split真让人郁闷

[复制链接]
发表于 2005-5-6 16:03:59 | 显示全部楼层 |阅读模式
我写的一段代码如下

  1. private boolean isDatFile(String filename){
  2.              String[] substr = filename.split(".");
  3.              if(substr[substr.length-1] == "Dat"){
  4.               return true;
  5.              }
  6.              return false;
  7. }
复制代码

功能是判断filename的文件的后缀名是否是Dat的文件,可是那个split语句没有用,我的filename = d:\temp\xxxx.dat,用其他的作为分割符可以,比如用filename.split(":");
或者filename.split("e");就是对"."不起作用,如果用"."分割的话,substr什么也得不到,substr.length = 0。

郁闷,弄了一下午,没有搞定,请大家帮我看看,错在哪,多谢。
发表于 2005-5-7 13:16:12 | 显示全部楼层
用StringTokenizer啊~~~
回复 支持 反对

使用道具 举报

发表于 2005-5-7 13:25:36 | 显示全部楼层
Post by casper
我写的一段代码如下

  1. private boolean isDatFile(String filename){
  2.              String[] substr = filename.split(".");
  3.              if(substr[substr.length-1] == "Dat"){
  4.               return true;
  5.              }
  6.              return false;
  7. }
复制代码

功能是判断filename的文件的后缀名是否是Dat的文件,可是那个split语句没有用,我的filename = d:\temp\xxxx.dat,用其他的作为分割符可以,比如用filename.split(":");
或者filename.split("e");就是对"."不起作用,如果用"."分割的话,substr什么也得不到,substr.length = 0。

郁闷,弄了一下午,没有搞定,请大家帮我看看,错在哪,多谢。

如果没有用过java ,最好先买一本书看一下。。。
这么白痴的问题:
if(substr[substr.length-1] == "Dat"){}
1.java 大小敏感
2.如果要判断字符的值相等用 str1.equals(str2),基础中的基础
3.==用来判断对象相等,要求对象属性,结构,物理位置全部等同。。。
回复 支持 反对

使用道具 举报

发表于 2005-5-8 10:31:42 | 显示全部楼层
兄弟split 的语法是正则表达式。你要会用才可以的 , 你同样可以用Stringtokenizer 试试 看看文档很简单的
回复 支持 反对

使用道具 举报

发表于 2005-5-8 10:32:40 | 显示全部楼层
噢我没有细看,兄弟连语法还不会
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-8 12:01:24 | 显示全部楼层
ok,那个dat和Dat是我的笔误,我承认我是一个java的新手,当然我的问题在你们所谓的高手眼中当然是微不足道的,但是hantsy,你完全没有抓住我问题是实质“如果用"."分割的话,substr什么也得不到,substr.length = 0”,这才是我到这来的原因,当然如果你的好的意见可以给我,我可以虚心的接受,但是请不要动不动就给人扣上白痴啊,SB的帽子,我想这不太符合一个开源论坛的精神吧……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-8 12:04:11 | 显示全部楼层
谢谢tong0711你的意见,我最后自己写了段程序实现了,因为我只是修改一个别人的程序,暂时需要看看java而已:)
回复 支持 反对

使用道具 举报

发表于 2005-5-8 12:44:21 | 显示全部楼层
路过
寒~~
回复 支持 反对

使用道具 举报

发表于 2005-5-8 16:42:09 | 显示全部楼层
[PHP]class Test{
public Test(){}
public final static void main(String args[]){

#String a="中国";
#System.out.println(a.substring(1));
#System.out.println("string len#"+a.length());

String a1="abc";
String b1=a1;

System.out.println(" a1 equals b1#"+(a1.equals(b1)));
System.out.println(" a1==b1#"+(b1==a1));

String c1="abc";
String d1="abc";

System.out.println(" c1 equals d1#"+(c1.equals(d1)));
System.out.println(" c1==d1#"+(d1==c1));

String e1=new String("abc");
String f1=new String("abc");

System.out.println(" e1 equals f1#"+(e1.equals(f1)));
System.out.println(" e1==f1#"+(e1==f1));

String s="fileName.java";
String sArray[]=s.split("\\.");
System.out.println("sArray length#"+sArray.length);
System.out.println("array values#");
for(String ss:sArray){
System.out.println("#"+ss);
}

}

}[/PHP]
Output Result:

  1. a1 equals b1#true
  2. a1==b1#true
  3. c1 equals d1#true
  4. c1==d1#true
  5. e1 equals f1#true
  6. e1==f1#false
  7. sArray length#2
  8. array values#
  9. #fileName
  10. #java
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-5-8 17:36:34 | 显示全部楼层
private boolean isDatFile(String filename) {
    return filename.endsWith(".Dat");
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表