VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 939|回复: 9

请问这个代码段的功能是什么

[复制链接]

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-1 10:00:01 | 显示全部楼层 |阅读模式
StringTokenizer fenxi=new StringTokenizer(person_email,"  @");
            int n=fenxi.countTokens();
             if(n>=3)
                 {out.print("<BR>"+"你输入的Email有不合法字符");
                 }
             else
                { putString(person_name);
                  out.print("<BR>"+"您已经注册成功");
                  out.print("<BR>"+"您注册的名字是"+person_name);
                  
                }

为什么             if(n>=3)就是不合法的呢,,感谢.为什么呢,分隔的不是"  @"嘛??不懂,请教一下,感谢.
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-13 20:00:01 | 显示全部楼层
判断用户输入的邮件地址是否合法,
一个邮件地址不可能有两个以上的@
回复

使用道具 举报

0

主题

9

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-3-14 09:00:01 | 显示全部楼层
一个邮件地址不可能有两个以上的@
=======================================================================
难道可以有两个?
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-3-16 16:15:01 | 显示全部楼层
public class StringTokenizerextends Objectimplements Enumeration<Object>string tokenizer 类允许应用程序将字符串分解为标记。tokenization 方法比 StreamTokenizer 类所使用的方法更简单。StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释。

可以在创建时指定,也可以根据每个标记来指定分隔符(分隔标记的字符)集合。

StringTokenizer 的实例有两种行为方式,这取决于它在创建时使用的 returnDelims 标志的值是 true 还是 false:

如果标志为 false,则分隔符字符用来分隔标记。标记是连续字符(不是分隔符)的最大序列。
如果标志为 true,则认为那些分隔符字符本身即为标记。因此标记要么是一个分隔符字符,要么是那些连续字符(不是分隔符)的最大序列。
StringTokenizer 对象在内部维护字符串中要被标记的当前位置。某些操作将此当前位置移至已处理的字符后。

通过截取字符串的一个子串来返回标记,该字符串用于创建 StringTokenizer 对象。

下面是一个使用 tokenizer 的实例。代码如下:

     StringTokenizer st = new StringTokenizer("this is a test");
     while (st.hasMoreTokens()) {
         System.out.println(st.nextToken());
     }
输出以下字符串:

     this
     is
     a
     test
StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。

下面的示例阐明了如何使用 String.split 方法将字符串分解为基本标记:

     String[] result = "this is a test".split("\\s");
     for (int x=0; x<result.length; x++)
         System.out.println(result[x]);
输出以下字符串:

     this
     is
     a
     test

回复

使用道具 举报

0

主题

23

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-3-22 22:00:01 | 显示全部楼层
说得相当详细了,我没什么好说了.
回复

使用道具 举报

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-4-27 19:30:02 | 显示全部楼层
不要COPY DOC文档好不好啊,兄弟。。

我现在要问的是为什么
为什么             if(n>=3)就是不合法的呢,,感谢.为什么呢,分隔的不是"  @"嘛??不懂,请教一下,感谢.
回复

使用道具 举报

1

主题

7

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-5-1 18:30:01 | 显示全部楼层
countTokens
public int countTokens()计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数。当前位置没有提前。

返回:
使用当前分隔符集的字符串中剩余的标记数。



没看懂

程序好像返回的结果不对吧`  输入一个正确的Email 提示错误

import java.util.StringTokenizer;

public class c
{
public static void main(String args[]) throws Exception
{
StringTokenizer fenxi=new StringTokenizer("2@f.c","  @");
            int n=fenxi.countTokens();
             if(n>=3)
                 {
                         System.out.println("OK");
                 }
             else
                {
               
                  System.out.println("Error");               
                  
                }
}
}

Error
回复

使用道具 举报

0

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-5-2 08:00:02 | 显示全部楼层
判断邮箱是否符合规则。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-5-2 16:15:01 | 显示全部楼层
这个分割符应该是由"person_email"这个串来定的,要看楼主开始是怎么拼这个串的咯.应该先把"person_email"这串给出来看一下.就知道了啊.
回复

使用道具 举报

1

主题

7

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-5-3 13:45:02 | 显示全部楼层
测试了一下 觉得应该是 n>=2 才能得出正确的结果

但是1@.也是OK的

说白了 这段代码就是看你输入的邮箱是否被“@”分隔成为2部分

觉得可以用Split方法来解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表