您当前的位置:首页 > 互联网教程

求java中怎么把字符串中的单引号去掉

发布时间:2025-05-23 07:33:32    发布人:远客网络

求java中怎么把字符串中的单引号去掉

一、求java中怎么把字符串中的单引号去掉

1、例如:'SL'去掉后变成SL

String regexp="\'";

2、System.out.println("替换前:"+ str);

3、str= str.replaceAll(regexp,"");

4、System.out.println("替换后:"+ str);

5、我开始时犯了个很弱智的错误,以至于现在搞了近二十分钟才出来。就是把上面的

6、str= str.replaceAll(regexp,"");

7、然后再打印,发现结果始终是’SL',

8、后来恍然大悟,String类被final修饰,是不可变的。所以对String对象施加任何操作都不会改变它的内容。而 str.replaceAll(regexp,"");相当于创建了一个新的字符串对象,即去掉了单引号的源字符串。再修改字符串引用 str指向新的字符串。则现在打印的就是去掉单引号后的字符串了。

二、java后台文件上传到资源服务器上

1、您好,common-fileupload是jakarta项目组开发的一个功能很强大的上传文件组件

2、下面先介绍上传文件到服务器(多文件上传):

3、import org.apache.commons.fileupload.*;

4、public class upload extends HttpServlet{

5、 private static final String CONTENT_TYPE="text/html; charset=GB2312";

6、//Process the HTTP Post request

7、 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

8、 response.setContentType(CONTENT_TYPE);

9、 PrintWriter out=response.getWriter();

10、 DiskFileUpload fu= new DiskFileUpload();

11、//设置允许用户上传文件大小,单位:字节,这里设为2m

12、//设置最多只允许在内存中存储的数据,单位:字节

13、//设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

14、 fu.setRepositoryPath("c://windows//temp");

15、 List fileItems= fu.parseRequest(request);

16、 Iterator iter= fileItems.iterator();

17、String[] errorType={".exe",".com",".cgi",".asp"};

18、 Pattern p= Pattern.compile(regExp);

19、 FileItem item=(FileItem)iter.next();

20、//忽略其他不是文件域的所有表单信息

21、 if((name==null||name.equals(""))&& size==0)

22、 for(int temp=0;temp<ERRORTYPE.LENGTH;TEMP++){

23、 if(m.group(1).endsWith(errorType[temp])){

24、 throw new IOException(name+": wrong type");

25、//在下文中上传文件至数据库时,将对这里改写

26、 item.write(new File("d://"+ m.group(1)));

27、 throw new IOException("fail to upload");

28、 catch(FileUploadException e){

29、现在介绍上传文件到服务器,下面只写出相关代码:

30、数据库插入代码为:PreparedStatement pstmt=conn.prepareStatement("insert into test values(?,?)");

31、这段代码如果不去掉,将一同写入到服务器中

32、//item.write(new File("d://"+ m.group(1)));

33、//读取输入流,也就是上传的文件内容

34、 InputStream inStream=item.getInputStream();

35、pstmt.setString(1,m.group(1));

36、 pstmt.setBinaryStream(2,inStream,(int)size);

37、这样就实现了上传文件至数据库。

三、Hive正则表达式

参考维基百科、 Hadoop Hive概念学习系列之hive的正则表达式初步(六)和 Hive正则匹配函数

之前没有在意过正则表达式,但是工作组不可避免的遇到了,感觉也比较重要,就花点时间理解一下。

正则表达式的目的:对字符串str进行解析,用正则表达式(pattern)进行匹配,并得到我们想要的符合模板pattern的字符串。

一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列匹配某个句法规则的字符串。例如:Handel、Händel和Haendel这三个字符串,都可以由H(a|ä|ae)ndel这个模式来描述。

同一个正则表达式可以匹配多个字符串。

例如,goo+gle可以匹配google、gooogle、goooogle等

0*42可以匹配42、042、0042、00042等。

反过来说,对于google、gooogle、goooogle我们都可以用正则表达式“goo+gle”匹配得到。而google、gooogle、goooogle就算我们想要的符合模板pattern的字符串。

举两个经常用到的:regexp_extract与 regexp_replace

regexp_extract(str, regexp[, idx])字符串正则表达式解析函数。

extracts a group that matches regexp

其中还有几个符号与idx需要注意的地方。

小括号()标记一个子表达式的开始与结束的位置。

**1表示返回正则表达式中第一个()对应的结果**。

2表示返回正则表达式中第二个()对应的结果

0表示把整个正则表达式对应的结果全部返回

此时,第一个()中对应结果是love,所以返回“love”。

因为idx是0,所以返回整个正则表达式匹配的结果。

语法: regexp_replace(string A, string B, string C)

说明:将字符串A中的符合Java正则表达式B的部分替换为C。

注意,在有些情况下要使用转义字符,类似 Oracle中的regexp_replace函数。