java中怎么用toString方法去除字符串中的标点,符号和数字?
java中怎么用toString方法去除字符串中的标点,符号和数字?例如:Stringstr="3.14company!!!"最终转换成Strings=“company”...
java中怎么用toString方法去除字符串中的标点,符号和数字?
例如:
String str = "3.14company!!!"
最终转换成
String s = “company”
打错了 是subString方法。。。。 展开
例如:
String str = "3.14company!!!"
最终转换成
String s = “company”
打错了 是subString方法。。。。 展开
7个回答
展开全部
纠正下,toString方法是用来转换为字符串的,不能用于字符串截取的。可以通过判断是不是字母,如果是字母的话,就保留下来,区域的直接忽略掉即可。
public static String getString(String src) {//输入参数为相应的字符串
char[] cr= src.toCharArray();
char[] str= new char[cr.length];
int index = 0;
for(char newchar : cr) {
if((newchar <= 'Z' && newchar>= 'A') || (newchar <= 'z' && newchar>= 'a')) {//判断是不是字符
str[index ++] = c;
}
}
return new String(str, 0, index);//返回字符结果
}
public static String getString(String src) {//输入参数为相应的字符串
char[] cr= src.toCharArray();
char[] str= new char[cr.length];
int index = 0;
for(char newchar : cr) {
if((newchar <= 'Z' && newchar>= 'A') || (newchar <= 'z' && newchar>= 'a')) {//判断是不是字符
str[index ++] = c;
}
}
return new String(str, 0, index);//返回字符结果
}
展开全部
tostring()方法不能完成此功能吧。用字符串替换试试。
看看java的 pattern类和match类。
进行模式匹配的第一步是使用Pattern类创建一个模式对象,模式对象是一个封装的正则表达式。 pattern类调用compile方法返回一个模式对象。
给你个代码你自己捉摸捉摸。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test5 {
public static void main(String args[]){
//给出两种方法来
//方法一 用空字符替换非字母字符
String str=new String("12*#D34comFpany,d2ds4!");
String regex1="[^a-zA-Z]";
//正则表达式,表示除了英文字母外的其他字符。^ 是非的意思
String regex2="[\\p{Alpha}]";
//正则表达式, 表示所有的字母
String result="";
//最后返回的结果
result=str.replaceAll(regex1, "");
// 方法一 这里用空字符串替换非字母字符;
System.out.print(result+" 该结果是用字符串替换得到的");
//方法二 匹配模式
Pattern p;
Matcher m;
p=Pattern.compile(regex2);
m=p.matcher(str);
result="";
//先把结果清空一下,因为result目前有值
while(m.find()){
String s=m.group();
System.out.println("从"+m.start()+"到"+m.end()+"匹配模式子序列:");
System.out.println(s);
result+=s;
}
System.out.print(result);
//关于匹配模式你自己查吧
}
}
运行结果:
DcomFpanydds 该结果是用字符串替换得到的从4到5匹配模式子序列:
D
从7到8匹配模式子序列:
c
从8到9匹配模式子序列:
o
从9到10匹配模式子序列:
m
从10到11匹配模式子序列:
F
从11到12匹配模式子序列:
p
从12到13匹配模式子序列:
a
从13到14匹配模式子序列:
n
从14到15匹配模式子序列:
y
从16到17匹配模式子序列:
d
从18到19匹配模式子序列:
d
从19到20匹配模式子序列:
s
看看java的 pattern类和match类。
进行模式匹配的第一步是使用Pattern类创建一个模式对象,模式对象是一个封装的正则表达式。 pattern类调用compile方法返回一个模式对象。
给你个代码你自己捉摸捉摸。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test5 {
public static void main(String args[]){
//给出两种方法来
//方法一 用空字符替换非字母字符
String str=new String("12*#D34comFpany,d2ds4!");
String regex1="[^a-zA-Z]";
//正则表达式,表示除了英文字母外的其他字符。^ 是非的意思
String regex2="[\\p{Alpha}]";
//正则表达式, 表示所有的字母
String result="";
//最后返回的结果
result=str.replaceAll(regex1, "");
// 方法一 这里用空字符串替换非字母字符;
System.out.print(result+" 该结果是用字符串替换得到的");
//方法二 匹配模式
Pattern p;
Matcher m;
p=Pattern.compile(regex2);
m=p.matcher(str);
result="";
//先把结果清空一下,因为result目前有值
while(m.find()){
String s=m.group();
System.out.println("从"+m.start()+"到"+m.end()+"匹配模式子序列:");
System.out.println(s);
result+=s;
}
System.out.print(result);
//关于匹配模式你自己查吧
}
}
运行结果:
DcomFpanydds 该结果是用字符串替换得到的从4到5匹配模式子序列:
D
从7到8匹配模式子序列:
c
从8到9匹配模式子序列:
o
从9到10匹配模式子序列:
m
从10到11匹配模式子序列:
F
从11到12匹配模式子序列:
p
从12到13匹配模式子序列:
a
从13到14匹配模式子序列:
n
从14到15匹配模式子序列:
y
从16到17匹配模式子序列:
d
从18到19匹配模式子序列:
d
从19到20匹配模式子序列:
s
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只保留字母,大小写
public static String toString(String src) {
char[] cs = src.toCharArray();
char[] dest = new char[cs.length];
int index = 0;
for(char c : cs) {
if((c <= 'Z' && c >= 'A') || (c <= 'z' && c >= 'a')) {
dest[index ++] = c;
}
}
return new String(dest, 0, index);
}
public static String toString(String src) {
char[] cs = src.toCharArray();
char[] dest = new char[cs.length];
int index = 0;
for(char c : cs) {
if((c <= 'Z' && c >= 'A') || (c <= 'z' && c >= 'a')) {
dest[index ++] = c;
}
}
return new String(dest, 0, index);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个不要截取字符串方法吧,用正则表达式替换啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String s = str.substring(4,11);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询