【问题标题】:string patterns in findInLine method in JavaJava中findInLine方法中的字符串模式
【发布时间】:2011-04-04 16:34:53
【问题描述】:

我们可以在 findInLine() 方法中使用哪些字符串模式。例如,如果输入是电子邮件地址,例如 vinny.kinny@gmail.com,我如何使用 java 中的 findInLine() 方法从输入中仅找到“vinny.kinny”。

【问题讨论】:

    标签: java string methods


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      当你写一个方法时,最好指定在哪个类(哪个包/库等)中可以找到它。
      我不知道整个 Java API,远非如此,但我从未听说过 findInLine() 方法。
      除非您打算自己编写此方法,否则这不是很清楚...

      如果您打算编写此方法,您可以使用String 类中的任何方法。例如,indexOf() 可以让您找到“@”的索引,然后您可以使用 substring() 方法提取它之前的部分。
      或者,如果您需要很大的灵活性,您可以使用正则表达式。

      【讨论】:

        【解决方案3】:

        没有直接回答您的问题,但我会为此使用 StringTokenizer:

        new StringTokenizer(emailString, "@");
        

        【讨论】:

        • 引用,javadoc:“StringTokenizer 是一个遗留类,出于兼容性原因,尽管不鼓励在新代码中使用它。” - String.split() 是推荐的方法拆分字符串
        • 感谢您的 cmets,我不知道这一点。我应该更仔细地阅读我正在使用的所有类的 Javadoc。
        【解决方案4】:

        假设你说的是Scanner类的findInLine()方法, 这些是 java.util.regex.Pattern 的 Javadoc 中描述的正则表达式模式。

        【讨论】:

          【解决方案5】:

          Sanner#findInLine(String regExp) 采用与String#split(String regExp) 相同的模式。它是一个正则表达式(Java 风格),可以在 Pattern 类的 javaDoc 中找到一个很好的文档。

          【讨论】:

            【解决方案6】:

            这就是我所做的:

            import java.util.*;
            import java.util.regex.Pattern;
            
            public class GetUserName {
            
             public static void main(String[] args) {
              Scanner scn = new Scanner(System.in);
              String userName;  
              System.out.println("Enter your email address: ");
              userName = scn.findInLine(Pattern.compile("[a-z]+"));
            
              System.out.println(userName);
             }
            
            }
            

            控制台窗口的输出:

            Enter your email address:
            thyaga@gmail.com
            thyaga
            

            ---------->

            这是我学到的:Pattern 类、FindInLine 方法以及如何使用模式参数、正则表达式构造。

            谢谢大家,再次感谢您提供的帮助!

            PS:邮件的正则表达式不完整,需要细化。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-12-17
              • 1970-01-01
              • 1970-01-01
              • 2011-11-08
              • 2011-02-25
              • 1970-01-01
              • 2020-06-26
              相关资源
              最近更新 更多