黑马程序员技术交流社区
标题:
字符串切割小问题
[打印本页]
作者:
孙峰
时间:
2012-6-17 15:25
标题:
字符串切割小问题
QQ截图20120617152424.png
(12.23 KB, 下载次数: 48)
下载附件
2012-6-17 15:24 上传
做的小练习,为什么切割了,字符串数组长度成0了?
作者:
李海晓
时间:
2012-6-17 15:30
本帖最后由 李海晓 于 2012-6-17 15:33 编辑
split运用了正则表达式
.点在正则表达是 是任意字符的意思 所以把所有的都去除了. 用 \.
可是\在java中有特殊含义 所以换成\\.
作者:
李盼
时间:
2012-6-17 15:32
本帖最后由 李盼 于 2012-6-17 15:36 编辑
public class Test
{
public static void main(String[] args )
{
String fileName = "djfowe.doc.avi.txt";
getLastName(fileName);
}
public static void getLastName(String s)
{
String[] arr = s.split("\\.");
System.out.println(arr.length);
}
}
看我的代码。那个"."不能直接这么写,而是要写"\\."。split方法的参数是一个正则规则。
而点在正则里面是代表任意字符,而\.经过转移字符才是点,但是\本身也需要被转义,所以是\\.
作者:
李海
时间:
2012-6-17 15:42
貌似是切割符号的问题
你把它改成这样就可以了:
class Demo4
{
public static void main(String[] args)
{
String filename="sdfds,dg.gdfg,gfg";
String[] arr= filename.split(",");//返回的是一个字符串数组
System.out.println(arr.length);
}
}
作者:
张_涛
时间:
2012-6-17 15:43
package com.heima.test;
public class Test {
public static void main(String[] args) {
String filename = "djfowe.doc.avi.txt";
getLastName(filename);
}
public static void getLastName(String str) {
String[] arr = str.split("\\.");
System.out.println(arr.length);
System.out.println("该文件的扩展名是:" + arr[arr.length - 1]);
}
}
复制代码
"."需要转义,嘿嘿
作者:
常佳杰
时间:
2012-6-18 01:00
我在做这个的时候也遇到过这样的问题,split(".")中那个点它会看成是一个任一字符,所以无法判断是用什么来分割的,这个需要你来用String类里的replaceAll()方法用其他的符号(反斜杠或?等)来替换“.”,然后再用split()方法来分割,希望采纳!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2