如何截取String,Eamil中的用户名

wu2728 2007-12-05 03:54:22
比如,字符串,ABC@123.COM想截取ABC应该用什么函数.请教了.
...全文
354 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
garagong 2007-12-07
  • 打赏
  • 举报
回复
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "gysh@yaoo.com.cn";
Pattern pa = Pattern.compile(".*(?=@)");
Matcher matcher = pa.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group());

}
}
qiuqiupeng 2007-12-07
  • 打赏
  • 举报
回复
用@分隔開來,然后取第0個變量就好了
cchaha 2007-12-07
  • 打赏
  • 举报
回复
不错,MARK
huhuan_dlut 2007-12-06
  • 打赏
  • 举报
回复
int index=ss.indexof("@");
String s=ss.subString(0,index);
Clesome_VC 2007-12-06
  • 打赏
  • 举报
回复
再贴一个好点的
这里用到是正则表达式的捕获组



import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GetEmailName {

public static void main(String[] args) {
String str = "abc@123.com";
String result = "";

Pattern pattern = Pattern.compile("^([a-z0-9]+(.[_a-z0-9-]+)*)@[a-z0-9-]+(.[a-z0-9-]+)*$");
Matcher matcher = pattern.matcher(str);

if(matcher.find())
System.out.println(matcher.group(1));
}

}

macrochao 2007-12-06
  • 打赏
  • 举报
回复

public class Test{
public static void main(String[] args){
String s="11232121@sohu.com";
StringBuffer br=new StringBuffer();
for(int i=0;i<=s.length();i++){
if(String.valueOf(s.charAt(i)).equals("@")){
break;
}
br.append(s.charAt(i));
}
System.out.println(br);
}
}
twinking 2007-12-06
  • 打赏
  • 举报
回复
用split()就可以吧
yyd12345 2007-12-05
  • 打赏
  • 举报
回复
用正则表达式过滤.
zhangbaokun 2007-12-05
  • 打赏
  • 举报
回复
原来group是这么用的,good
Clesome_VC 2007-12-05
  • 打赏
  • 举报
回复
没时间了 写个简单点的,主要是用group(1)

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GetEmailName {


public static void main(String[] args) {

String str = "abc@123.com";
String result = "";

Pattern pattern = Pattern.compile("(\\w*)@\\w*\\.\\w*");
Matcher matcher = pattern.matcher(str);

if(matcher.find())
System.out.println(matcher.group(1));
}

}

psyl 2007-12-05
  • 打赏
  • 举报
回复
14楼说的也对,确实有.info .name之类的域名,不过在本题中检测邮箱地址是否正确用我的那个是没问题的。 另:用indexOf()和split()都是很好的方法!
psyl 2007-12-05
  • 打赏
  • 举报
回复
对不起,看错题目了,以为是验证地址。。
zhangbaokun 2007-12-05
  • 打赏
  • 举报
回复
没毛病邮箱好像没有4位结尾的常见的点.cn .com .name是什么
Kreocn 2007-12-05
  • 打赏
  • 举报
回复
额......貌似11楼表达式有问题....
假设..我的EMAIL地址为:
xxxx@xxxx.name
就显示为错了.....应该是
("\\w @(\\w .) [a-z]+")
zhangbaokun 2007-12-05
  • 打赏
  • 举报
回复
楼上的是判定邮箱合法,和楼主要求不符
Kreocn 2007-12-05
  • 打赏
  • 举报
回复
顶楼上...正则表达式好....还可以检测是否是正确的邮件地址
psyl 2007-12-05
  • 打赏
  • 举报
回复
建议用正则表达式。
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Test {
public static void main(String[] args) {

if(args.length != 1) {
System.out.println("请输入一个参数!");
System.exit(0);
}
Pattern p = Pattern.compile("\\w @(\\w .) [a-z]{2,3}");
Matcher m = p.matcher(args[0]);
boolean b = m.matches();
if(b) {
System.out.println("有效邮件地址");
} else {
System.out.println("无效邮件地址");
}
}
}

Pls see up codes.
wu2728 2007-12-05
  • 打赏
  • 举报
回复
Thank you so much!!!!!!
zhiqiang_he 2007-12-05
  • 打赏
  • 举报
回复
String stra = abc@123.com;
String[] strarr = stra.split("@");
System.out.println(strarr[0].toString());
oklinsong 2007-12-05
  • 打赏
  • 举报
回复
String str="ABC@126.com";
String[] result=str.split("@");
System.out.println(result[0]);
加载更多回复(7)

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧