新手请教 提取邮箱用户名和域名 问题

问题描述

按照网上写的程序发生问题,代码如下:staticvoidMain(string[]args){//从Email中提出用户名和域名:abc@163.comstringemail=Console.ReadLine();intatIndex=email.IndexOf('@');//atIndex是指域名的长度,int型stringusername=email.Substring(0,atIndex);//提取用户名string域名=email.Substring(atIndex+1);//提取域名Console.WriteLine(username);Console.WriteLine(域名);Console.ReadKey();}显示域名时带着.com比如123@321.com,程序输出为123@321.com123321.com后来根据自己修改,VS2010报错,求前辈们分析下问题,并指点下正确答案staticvoidMain(string[]args){//从Email中提出用户名和域名:abc@163.comstringemail=Console.ReadLine();inte=email.Length;//输入email的总长度intatIndex=email.IndexOf('@');//atIndex是指域名的长度,int型inta=email.IndexOf('.');//.com长度stringusername=email.Substring(0,atIndex);//提取用户名string域名=email.Substring(e-a-(atIndex+1));//提取域名(email总长度-.com长度-(用户名+@的长度))Console.WriteLine(username);Console.WriteLine(域名);Console.ReadKey();}以上程序输出时出现两个问题。一是如果输入123@321.com输出则为123@321.com123123@321.com二是如果输入长点的email地址如12345@54321.com则会报错第一次发帖,有什么问题请见谅

解决方案

解决方案二:
第二个问题是指string域名=email.Substring(e-a-(atIndex+1))的值小于0了么?可我觉得没有小于0啊……
解决方案三:
引用楼主lhp3736的回复:

按照网上写的程序发生问题,代码如下:staticvoidMain(string[]args){//从Email中提出用户名和域名:abc@163.comstringemail=Console.ReadLine();intatIndex=email.IndexOf('@');//atIndex是指域名的长度,int型string……

你此处计算明算有问题。当email为:abc@163.com时,其length为11,点的索引为7,@索引为3,此时e-a-(atIndex+1))=0,截取时没问题。当email为:12345@54321.com时,其length为15,点的索引为11,@索引为5,此时e-a-(atIndex+1))=-2,这时截取就有问题了。而且你无非是想得到email中的域名,就按照你从网上弄的那种不就是可以的吗,干吗你还要搞的那么麻烦?而且你那截取方式明显是有问题的。多看看字符串函数吧……

时间: 2024-08-04 03:06:57

新手请教 提取邮箱用户名和域名 问题的相关文章

ajax-php全局变量修改问题(新手请教)

问题描述 php全局变量修改问题(新手请教) 用户登录后,将用户信息存放到php的全局变量global $user中, 编辑用户,修改用户的名字,点击保存,用户名成功保存到数据库中,但是页面中显示的用户名却没有变, 我想问下ajax回调函数如何能够修改php的超全局变量的值? 解决方案 分享一个jquery ajax 中不能修改全局变量问题的方法 解决方案二: 成功保存到数据库中你更新下变量值,下次刷新页面就会变 如果是ajax无刷提交的,用js更改页面用户名容器的innerHTML <span

新手请教:vb08 编写登陆界面后与数据库连接,再提交留言 怎么在数据库中更新?

问题描述 小弟现在用vb08编写了一个登陆界面(form1)并且已经和数据库连在一起现在登陆后弹出留言界面(form2)在这个界面中留言提交后怎么在form2的代码中引用form1的用户名把用户名和留言内容一起更新到表中请问有几种实现方式???新手请教,谢谢各位大哥 解决方案 解决方案二:定义一个curUser公共变量解决方案三:该回复于2011-12-19 13:53:28被版主删除解决方案四:Form1中定義一個static類變量,於Form2中調用例:'Form1中:dimusername

mvc filter-如何获取客户端当前登录的用户名和域名?

问题描述 如何获取客户端当前登录的用户名和域名? 需求 : 公司网站,让普通用户访问前台页面,公司域中的用户能访问后台页面.实现过程的问题:取到用户名和域名,和当前配置的域名和用户名比较,来控制网站后台的访问.背景:1.网站是个Orchard框架搭的,客户端环境是WIN7+IE,服务端是IIS(**这里我是在我机器上部署,让同事访问去测试的,如果是直接运行代码调试的话,一切正常...**).尝试过的方法: 1.**Request.LogonUserIdentity.User**,这个取到的是服务

如何获取线程关联用户名和域名

在Windows NT/2000/XP上编写程序时,有时会需要我们获取与当前调用线程关联的用户名和域名(domain),本文下面将示范在Windows NT/2000/XP环境里如何使用Win32 API有关安全的函数来获取用户名和域名. 在Windows NT之前,一般都假设某个线程是运行在登录用户的帐号之下.但Windows NT问世以后,允许线程可以在多个安全上下文中运行,言下之意就是一个线程对多个用户.例如,在客户/服务器(C/S)应用中,服务器的某个线程可以通过 Impersonate

通讯录-新手请教大神们一个问题。

问题描述 新手请教大神们一个问题. 刚学习android,想做一个关于短信的小应用,我想在通讯录获得联系人,但是不是获得一个联系人,也不是全部的,就想调用那个短信群发的时候会跳转到的可以多选联系人界面上,如果是普通的通讯录我会调用: Intent intent = new Intent(Intent.ACTION_PICK ContactsContract.Contacts.CONTENT_URI); 但是调用那个多选联系人的通讯录界面我就不会了.百度也没找到有关的资料,所以请教一下各位大神!谢

c语言-C 新手请教下面的代码哪里错了?

问题描述 C 新手请教下面的代码哪里错了? e:cato3-1.cpp(1) : error C2628: 'SqStack' followed by 'void' is illegal (did you forget a ';'?) void InitStack(SqStack &S) { if(!(S.base=(SElemType )malloc(STACK_INIT_SIZE*sizeof(SElemType)))) exit(OVERFLOW); S.top=S.base; S.sta

新手请教一个c的问题,关于指针赋初始值

问题描述 新手请教一个c的问题,关于指针赋初始值 #includeint main(){ char *p=NULL; scanf(""%s""p); printf(""%s""p); return 0;}这段代码我在ios的终端下运行就提示Segmentation fault:11但是不给p赋初值的话..改称char *p;反而好使了..为什么...请教别人说是编译器的问题.能不能稍微详细的说一下为什么.. 解决方案 要先弄清

新手请教个asp.net下的问题,为什么会出错?

问题描述 新手请教个asp.net下的问题,为什么会出错? 请问这个错误怎么解决啊? 解决方案 WH这个类缺少无参构造函数或者它是一个抽象类. 解决方案二: 没有用using导入相应的命名空间

tomcat 延时-新手请教,tomcat的延时设置

问题描述 新手请教,tomcat的延时设置 Windows系统中,用tomcat作为资源服务器,能否做到如下两点: 1.向tomcat发送http资源请求(http://ip:port/1.mp3之类的资源地址),tomcat能否延时一定时间(例如10s)然后再向客户端发送资源文件 2.能否限制单位时间内(1s)发送的资源大小.例如收到客户端请求(http://ip:port/1.mp3之类的资源地址)之后,每秒只向客户端发送1kb大小的文件数据流 以tomcat作为服务器能否做到如下两点?如果