如果有一个字符串,如何判断是否存在符合如下条件的子串:
1.必须在字符串开头
2.由一个或几个数字加一个点构成
比如;123.adsd
我的实现如下:
1.查找字符串中第一个'.'出现的位置
2.如果找到,那么取'.'之前的字串判断是否全部为数字
如果全为数字,那么返回'.'之后的子串
我觉得这样做有点麻烦,又没有什么简单的方法,请指点一下
1.必须在字符串开头
2.由一个或几个数字加一个点构成
比如;123.adsd
我的实现如下:
1.查找字符串中第一个'.'出现的位置
2.如果找到,那么取'.'之前的字串判断是否全部为数字
如果全为数字,那么返回'.'之后的子串
我觉得这样做有点麻烦,又没有什么简单的方法,请指点一下
解决方案 »
- FileInputStream FileNotFoundException知道问题在哪里,不知道怎么产生的
- java求助
- 无法从Servlet中跳转到JSP页面
- 10行的小程序, 为何输出是1234 有空的看下。
- 帮忙看个源代码!
- 把数组中所有连续二个以上的0去掉,将结果存入一个新数组,在线等
- tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
- jnative调用c的dll导致java虚拟机崩溃
- 菜鸟问题,怎么LinkedList比ArrayList添加元素还要慢啊??
- 多线程下载为何下载的文件被损坏了
- 求教!关于集合类的疑问2则
- 统计List中某个元素的个数,帮忙优化
public static void main(String[] args) {
String str = "123.abc.4d";
String[] strs = str.split("\\.");
if(strs!=null&&strs[0].matches("\\d+")){
System.out.println(strs[0]);
}
for(String s:strs){
System.out.println(s);
}
}
}
boolean b = Pattern.matches("正则表达式", "aaaaab");
matches
public static boolean matches(String regex,
CharSequence input)编译给定正则表达式并尝试将给定输入与其匹配。
调用此便捷方法的形式 Pattern.matches(regex, input);与表达式
Pattern.compile(regex).matcher(input).matches() 的行为完全相同。
如果要多次使用一种模式,编译一次后重用此模式比每次都调用此方法效率更高。
参数:
regex - 要编译的表达式
input - 要匹配的字符序列
抛出:
PatternSyntaxException - 如果表达式的语法无效
判断是否匹配
匹配取组2
String regex = "^[0-9]*.+";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher("123.adsd");
public TestSplit
{
public static viod main(String args[])
{
String str="123.adsd";
String[] result=str.split("[.]");
if(result!=null&&result[0].matches("\\d"))
{
System.out.println(result[0]);
}
for(String str1:result) //将字符窜数组result中的值循环赋给str1
{
System.out.println(str1); //打印以“.”划分之后的子串
}
}
}