求java中怎么把字符串中的单引号去掉
发布时间:2025-05-23 07:33:32 发布人:远客网络
一、求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函数。