求一java基础算法 传过来邮箱地址例如:[email protected]变成[email protected]简单说就是@前的邮箱地址,字符间加一个点。如果邮箱第一个字符是点就过滤掉。求代码比较简洁的算法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String s="[email protected]"; String ss=s.substring(0, s.lastIndexOf("@")).replaceAll("", "."); String sss=s.substring(s.lastIndexOf("@"), s.length()); String ssss=ss.substring(1,ss.length()-1); System.out.println(ssss+sss); String str = "[email protected]"; String strStart = str.split("@")[0]; char[] chars = strStart.toCharArray(); StringBuffer sb = new StringBuffer(); for(int i=0;i<chars.length;i++){ String s = String.valueOf(chars[i]); if(s.equals(".")&&(i==0)){ sb.append(""); }else{ sb.append(s+"."); } } sb.append("@"); sb.append(str.split("@")[1]); System.out.println(sb.toString());随手写的,仅供参考 public class Gmail { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String s="[email protected]"; char c[]=s.toCharArray(); String str="1"; if(c[0]=='.') { return; } str=String.valueOf(c[0]); for(int i=1;i<s.length();i++){ if(c[i] == '.'){ str+=String.valueOf(c[i])+String.valueOf(c[++i]); } else if(c[i] == '@'){ str+=s.substring(i); i=s.length(); } else{ str=str+'.'+String.valueOf(c[i]); } } System.out.println(str); }}这是我自己写的,如果前面那段有点的时候是不是也要加个判断。我写的觉得不是很简洁 public class Gmail { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String s="[email protected]"; char c[]=s.toCharArray(); String str="1"; if(c[0]=='.') { return; } str=String.valueOf(c[0]); for(int i=1;i<s.length();i++){ if(c[i] == '.'){ str+=String.valueOf(c[i])+String.valueOf(c[++i]); } else if(c[i] == '@'){ str+=s.substring(i); i=s.length(); } else{ str=str+'.'+String.valueOf(c[i]); } } System.out.println(str); }} 最简单的应该是用regular expression吧 错了,没看清题。for (int i = 0, l = s.indexOf("@") - 1; i < l; i++) {m.append(s.getChar(i)).append("."); package y201303;public class AddDot { public static void main(String[] args) { processDot("[email protected]"); } public static void processDot(String str){ String strHead = str.split("@")[0]; String strFoot = str.split("@")[1]; strHead = strHead.replace(".", ""); strHead = strHead.replace("", "."); strHead = strHead.substring(1, strHead.length()-1); String newStr = strHead + "@" +strFoot; System.out.println(newStr); } } 泛型实现连续型线性表问题求助 忽然遇到个JAVA基础问题,怪异 很纠结的问题 要怎么添加jxl软件包才能成功啊 JNI调用C++ DLL时,如何调试dll呢?(VC调试高手请给与帮助) 做J2EE就是做一个网站,这个认为对吗? jsp传递参数给applet 为什么比较时有人推荐 0==len ,要把常量放在前面,作为第一操作数 小弟,选择单位面临两难,朋友们指点指点呀 请高手指点如何入门Java,需要看哪些书呢?100送 分布式系统几种典型一致性算法简述 急啊 都来看看 JAVA 如何调用DLL得到其inout 类型的参数
String s="[email protected]";
String ss=s.substring(0, s.lastIndexOf("@")).replaceAll("", ".");
String sss=s.substring(s.lastIndexOf("@"), s.length());
String ssss=ss.substring(1,ss.length()-1);
System.out.println(ssss+sss);
String strStart = str.split("@")[0];
char[] chars = strStart.toCharArray();
StringBuffer sb = new StringBuffer();
for(int i=0;i<chars.length;i++){
String s = String.valueOf(chars[i]);
if(s.equals(".")&&(i==0)){
sb.append("");
}else{
sb.append(s+".");
}
}
sb.append("@");
sb.append(str.split("@")[1]);
System.out.println(sb.toString());
随手写的,仅供参考
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="[email protected]";
char c[]=s.toCharArray();
String str="1";
if(c[0]=='.')
{
return;
}
str=String.valueOf(c[0]);
for(int i=1;i<s.length();i++){
if(c[i] == '.'){
str+=String.valueOf(c[i])+String.valueOf(c[++i]);
}
else if(c[i] == '@'){
str+=s.substring(i);
i=s.length();
}
else{
str=str+'.'+String.valueOf(c[i]);
}
}
System.out.println(str);
}
}这是我自己写的,如果前面那段有点的时候是不是也要加个判断。我写的觉得不是很简洁
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="[email protected]";
char c[]=s.toCharArray();
String str="1";
if(c[0]=='.')
{
return;
}
str=String.valueOf(c[0]);
for(int i=1;i<s.length();i++){
if(c[i] == '.'){
str+=String.valueOf(c[i])+String.valueOf(c[++i]);
}
else if(c[i] == '@'){
str+=s.substring(i);
i=s.length();
}
else{
str=str+'.'+String.valueOf(c[i]);
}
}
System.out.println(str);
}
}
m.append(s.getChar(i)).append(".");
package y201303;
public class AddDot { public static void main(String[] args) {
processDot("[email protected]");
}
public static void processDot(String str){
String strHead = str.split("@")[0];
String strFoot = str.split("@")[1];
strHead = strHead.replace(".", "");
strHead = strHead.replace("", ".");
strHead = strHead.substring(1, strHead.length()-1);
String newStr = strHead + "@" +strFoot;
System.out.println(newStr);
}
}