求一个String的处理方法
例如:String sql="select abc from def where efg=1";
程序要求找到关键字where 在sql中的位置(indexOf("where"));
但是如果sql="select abc from def WHERE efg=1;
要求也可以返回其位置,请问该如何实现,谢谢.着急..在线等了.....
就是找到字符串的关键字,不管它是大写还是小写.
问题点数:100、回复次数:16Top
1 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-04-01 21:42:16 得分 90
String sql="select abc from def where efg=1";
sql=sql.replaceAll("[W|w][H|h][E|e][R|r][E|e]","where");
int i=sql.indexOf("where");Top
2 楼pigo()回复于 2005-04-01 21:45:31 得分 1
先转成小写,然后再indexof
String sql="select abc from def where efg=1";
int i= sql.toLowerCase().indexOf("where");
Top
3 楼lovexin(魔泪之剑)回复于 2005-04-01 21:55:42 得分 1
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
Top
4 楼topil(认认真真学习,塌塌实实工作)回复于 2005-04-01 22:39:57 得分 1
用pigo(少壮且行英雄梦,迟暮归守温柔乡) 的方法吧,转成小写,然后在用indexof方法查找Top
5 楼jackkui(键 之 舞 者)回复于 2005-04-01 22:40:48 得分 1
同意二楼的方法。Top
6 楼xsyl_1982(黑欲浪子)回复于 2005-04-01 23:42:31 得分 1
同上Top
7 楼williamVII(spread)回复于 2005-04-01 23:52:59 得分 1
nodTop
8 楼mnbvc874(Java EE)回复于 2005-04-02 00:00:11 得分 1
收藏Top
9 楼WinFastNcr(随她去吧!)回复于 2005-04-02 00:35:23 得分 1
DINGTop
10 楼OnlyFor_love(『勾勾手指头 一辈子不分手』)回复于 2005-04-02 09:25:13 得分 1
楼主可以把他们都转换成同一种字体,都是大写或者都是小写,同过string.toLowerCase().
然后再用indexof()来取where的位置Top
11 楼OnlyFor_love(『勾勾手指头 一辈子不分手』)回复于 2005-04-02 09:31:24 得分 1
public class string
{
public static void main (String [] args)
{
String sql="select abc from def where efg=1";
String sql2="select abc from def WHERE efg=1";
String str = sql2.toLowerCase();
int i = sql.indexOf("where");
int j = str.indexOf("where");
System.out.println(i);
System.out.println(j);
}
}Top
12 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-04-02 09:32:34 得分 0
2楼方法果然比我的要好
呵呵
学习一把咯Top
13 楼wtd(浪花)回复于 2005-04-02 09:37:12 得分 0
2搂的方法不合适,要是sql语句中的其他东西有大写的,转化成小写的,岂不是错误?????
试试一楼的办法了.Top
14 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-04-02 09:40:21 得分 0
sql语句是不区分大小写的,包括表名,列名
所以他的办法是可行的
Top
15 楼wtd(浪花)回复于 2005-04-02 09:43:26 得分 0
呵呵,我是只如果update某些值,值的内容是大写的,我转化成小写不就错了么?还是
jFresH_MaN(TM) ( ) 信誉:135 你的办法好啊.采用了Top
16 楼pigo()回复于 2005-04-02 14:41:51 得分 0
String 是不可变类,toLowerCase 是不会修改原来的String,
toLowerCase比正则表达式替换的效率高出许多。
不过 replaceAll 的技术含量更高,呵呵。
Top




