博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分享一个实用的String的工具类
阅读量:7264 次
发布时间:2019-06-29

本文共 3130 字,大约阅读时间需要 10 分钟。

在编写J2ME程序时,我们尝尝要操作字符串,而原本在J2SE里面提供了很多String的操作方法,在J2ME里面是没有的,这些方法我们得自己手动去写。我整理了一下我常用的字符串操作方法:

1.URLEncode(String url)方,对字符串的特殊字符进行编码,这个方法用的非常平凡,我们的HttpConnection请求必须要用到这个方法。

2.split(String s, int chr),这个方法用于分割字符串,返回一个字符串数组,当某些数据以特定的字符做间隔时,我们取出数据尝尝要用到这个方法。

3.replaceAll(String from, String to, String source),这个方法是用来替换字符串中的子串的,比如:replaceAll("aaa","","aaabbbcccaaa")把字符串"aaabbbccc"中的所有"aaa"替换成空字符串,结果就是"bbbccc"。

4.StringFilter(String str),这个方法是用来过滤某些字符的。

ContractedBlock.gif
ExpandedBlockStart.gif
代码
 
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package
test;
import
java.util.Vector;
/**
*
*
@author
Administrator
*/
public
class
StringUtil {
/**
* URLEncode对特殊字符进行编码
*
@param
url
*
@return
*/
public
static
String URLEncode(String url) {
StringBuffer buf
=
new
StringBuffer();
for
(
int
i
=
0
; i
<
url.length(); i
++
) {
switch
(url.charAt(i)) {
case
'
'
:
buf.append(
"
%20
"
);
break
;
case
'
+
'
:
buf.append(
"
%2b
"
);
break
;
case
'
\
''
:
buf.append(
"
%27
"
);
break
;
case
'
/
'
:
buf.append(
"
%2F
"
);
break
;
case
'
.
'
:
buf.append(
"
%2E
"
);
break
;
case
'
<
'
:
buf.append(
"
%3C
"
);
break
;
case
'
>
'
:
buf.append(
"
%3E
"
);
break
;
case
'
#
'
:
buf.append(
"
%23
"
);
break
;
case
'
%
'
:
buf.append(
"
%25
"
);
break
;
case
'
&
'
:
buf.append(
"
%26
"
);
break
;
case
'
{
'
:
buf.append(
"
%7B
"
);
break
;
case
'
}
'
:
buf.append(
"
%7D
"
);
break
;
case
'
\\
'
:
buf.append(
"
%5C
"
);
break
;
case
'
^
'
:
buf.append(
"
%5E
"
);
break
;
case
'
~
'
:
buf.append(
"
%73
"
);
break
;
case
'
[
'
:
buf.append(
"
%5B
"
);
break
;
case
'
]
'
:
buf.append(
"
%5D
"
);
break
;
default
:
buf.append(url.charAt(i));
break
;
}
}
return
buf.toString();
}
/**
* 把String以一个char为分割点,拆分成String数组
*
@param
s
*
@param
chr
*
@return
*/
public
static
String[] split(String s,
int
chr) {
Vector res
=
new
Vector();
int
curr;
int
prev
=
0
;
while
((curr
=
s.indexOf(chr, prev))
>=
0
) {
res.addElement(s.substring(prev, curr));
prev
=
curr
+
1
;
}
res.addElement(s.substring(prev));
String[] splitted
=
new
String[res.size()];
res.copyInto(splitted);
return
splitted;
}
/**
* 字符串替换
*
@param
from
* 字符串中要被替换的子串
*
@param
to
* 替换子串的字符串
*
@param
source
* 被操作的字符串
*
@return
*/
public
static
String replaceAll(String from, String to, String source) {
if
(source
==
null
||
from
==
null
||
to
==
null
) {
return
null
;
}
StringBuffer bf
=
new
StringBuffer();
int
index
=
-
1
;
while
((index
=
source.indexOf(from))
!=
-
1
) {
bf.append(source.substring(
0
, index)
+
to);
source
=
source.substring(index
+
from.length());
index
=
-
1
;
}
bf.append(source);
return
bf.toString();
}
/**
* 字符串过滤
* 过滤掉诸如<html>这样的标签,获取其中的文本。
* 例如 str = <html>文本区域</html>,传的时候传一个节点过来(一对封闭标签)
*
@param
str
*
@return
*/
public
static
String StringFilter(String str) {
String now
=
str;
int
start
=
0
;
int
end
=
0
;
for
(
int
i
=
0
; i
<
now.length(); i
++
) {
//
'\u003C','\u003E' = <>
if
(now.charAt(i)
==
'
\u003C
'
) {
start
=
i;
}
if
(now.charAt(i)
==
'
\u003E
'
) {
end
=
i;
}
if
(start
!=
-
1
&&
end
!=
-
1
) {
String sub
=
now.substring(start, end
+
1
);
str
=
StringUtil.replaceAll(sub,
""
, str);
start
=
0
;
end
=
0
;
}
}
return
str;
}
}

 

 

转载地址:http://vugdm.baihongyu.com/

你可能感兴趣的文章
关于企业费控管理的这些陷阱,你知道吗?
查看>>
RTMP/RTSP直播播放器选择
查看>>
编排的艺术| K8S 中的容器编排和应用编排
查看>>
重大成果!世界首创、中国研制体细胞克隆猴诞生!
查看>>
除了冒泡排序,你知道Python内建的排序算法吗?
查看>>
Android 解决 Toolbar 的 Menu 图标无法显示
查看>>
Jenkins 构建JAVA的Helloworld程序(学习笔记四)
查看>>
CheckListView扩展之框架修改
查看>>
斑马标签打印机蛋疼的打印错误处理方法
查看>>
Shape流动效果
查看>>
消息中间件核心实体(0)
查看>>
Java性能优化的5个技巧
查看>>
Mysql +MHA+LVS+KEEPALIVED高可用,读写分离,负载均衡 搭建(学习笔记十八)
查看>>
在阿里,不是每一个项目都有KPI
查看>>
quartz获取定时任务下次执行的时间
查看>>
SpringCloud(3):服务的提供与注册
查看>>
Unity 基础之 Visual Studio 2017 常用快捷键
查看>>
django 1.8 官方文档翻译: 2-3-1 模型实例参考
查看>>
php的事件处理机制(回调函数)
查看>>
Java集合框架
查看>>