天天看点

java中string常用类_Java中String的一些常用类

前几天发了一些题目,主要是对字符串的一些操作。下面把这些题目一一列出来。

1、删除给定字符串

2、倒置字符串

3、去除随机生成字符串中的重复字符,并将新的字符串输出。

4、检查字符串是否是回文字符串

回文字符串:如果一个字符串,不管从前往后读,还是从后往前读,都是一样的,如:12321,eve,则称为回文字符串。

5、替换字符串中的部分字符。

实现要求:

1)、判断要替换的字符串是否存在,并需要遍历找到要替换的字符串的位置。

2)、在替换的字符串位置上进行替换,获得替换后生成的新字符串。

6、验证码是目前网络中应用最广泛的一种安全机制,可防止一些不良信息的侵入。随着网络的发展,验证码也由原本简单的数字变成汉字校验。

本实验要求使用Java分别获取四种验证码。

1)、由数字0-9组成的全数字验证码

2)、由英文字母和标点符号组成的字符验证码

3)、全部由中文组成的验证码

4)、字符+数字的混合验证码

以下是解决方法。

1、删除给定字符串:

有一个replace(charoldChar, charnewChar)方法,作用是返回一个新的字符串,用newChar 替换此字符串中出现的所有oldChar。代码如下:

?

class="java">String s = "123456789";

s = s.replace("567", "");

?

还有一个方法就是split(Stringregex),根据regex来拆分字符串,返回值是String数组。代码如下:

?

String s = "123456789";

String[] str = s.split("456");

String str2 = "";

for (int i = 0; i < str.length; i++) {

str2 = str2 + str[i];

}

?

目前只知道这两种方法,如果有其他方法,望不吝赐教。

2、倒置字符串。

这一题可以定义一个中间变量,把首尾的字母进行交换,这是在C语言中是这样解决的。我在网上也搜过,有用递归的。下面给上代码:

public static void reverse (String str){

if (str.length() == 1){

System.out.print(str);

}

else{

Stringstr1 = str.substring(0, str.length()-1);

String str2 = str.substring(str.length()-1);

System.out.print(str2);

reverse(str1);

}

}

public static void main(String[] args) {

String str= "123456789";

reverse(str);

}

之后才发现,可以把字符串定义为StringBuffer,里面有这样一个方法reverse(),被字符串序列的反转所取代,这就简单了,代码如下:

StringBuffer s = new StringBuffer( "123456");

s.reverse();

3、去除随机生成字符串中的重复字符,并将新的字符串输出。

public static void main(String[] args) {

String s = "abcdefghijklmnopqrstuvwxyz";

String str = "";

String str2 = "";

for (int i = 0; i < s.length(); i++) {

char c = s.charAt((int) (Math.random() * 26));//在字符串s中随机取一个字符

str = str + c;//str是随机生成的字符串

}

System.out.println(str);

for (int j = 0; j < str.length(); j++) {

char c = str.charAt(j);

//看字符c在字符串str中是否存在

if (!(str2.contains(c + ""))) {

str2 = str2 + c;//str2是新的字符串

}

}

System.out.println(str2);

// Random r = new Random();

// System.out.println(r.nextInt(10));

}

去除字符串也可以用数组的方法,这里就不上代码了。

4、检查字符串是否是回文字符串

可以用比较首尾字符是否相等来解决这个题。

也可以把字符串倒置,比较两个字符串是否相等。

有一个方法也应该记一下charAt(int index),返回index处的一个字符。

5、替换字符串中的部分字符。

有一个要求是判断要替换的字符串是否存在,用String中的contains(CharSequence s)方法,返回值是boolean类型的。存在为true,不存在为false。

替换字符串用的是replace()方法,第一题就是的。

6、获取4位的随机验证码,在第三题就有代码,只是要中文的验证码,就只能添加一些中文字库,没找到其他什么办法。

?

总结一下,这几天学的String里面的方法。

charAt(int index),返回index处的一个字符。

compareTo(String anotherString),比较两个字符串。返回值为int类型。

concat(String str),连接字符串。返回值为String。

contains(CharSequence s),字符串中是否包含指定的字符串。返回true或者false。

indexOf(String str),返回指定子字符串在字符串中第一次出现的位置。

length(),返回字符串的长度。

replace(char oldChar,char newChar),用newChar替换oldChar得到一个新的字符串。

split(String regex),根据给定的regex拆分字符串,返回值为字符串数组。

substring(int start),返回一个从start这个位置开始到字符串结束的子字符串。

substring(int start,int end),返回一个从start开始到end-1的字符串,不包括end这个位置的字符。

StringBuffer里面的方法:

append(char c),在字符串后面添加一个字符。

reverse(),将当前字符串倒置。

就这些了,我是小白,有什么错误的地方欢迎指正。