Java中findInLine方法中的字符串模式
我们可以在findInLine()方法中使用哪些字符串模式。例如,如果输入是电子邮件地址,例如vinny。kinny@gmail.com,如何在java中使用findInLine()方法从输入中仅查找“vinny.kinny”。查看java中的正则表达式:Java中findInLine方法中的字符串模式,java,string,methods,Java,String,Methods,我们可以在findInLine()方法中使用哪些字符串模式。例如,如果输入是电子邮件地址,例如vinny。kinny@gmail.com,如何在java中使用findInLine()方法从输入中仅查找“vinny.kinny”。查看java中的正则表达式: 在编写方法时,最好指定在哪个类(哪个包/库等)中可以找到该方法。 我不知道整个Java API,但我从来没有听说过findInLine()方法。 除非你打算自己写这个方法,否则这不是很清楚 如果您计划编写此方法,则可以使用类中的任何方法。例如
在编写方法时,最好指定在哪个类(哪个包/库等)中可以找到该方法。
我不知道整个Java API,但我从来没有听说过findInLine()方法。
除非你打算自己写这个方法,否则这不是很清楚 如果您计划编写此方法,则可以使用类中的任何方法。例如,indexOf()可以让您找到“@”的索引,然后可以使用substring()方法提取前面的部分。
或者,如果需要很大的灵活性,您可以使用正则表达式。没有直接回答您的问题,但我将使用StringTokenizer:
new StringTokenizer(emailString, "@");
假设您正在讨论
Scanner
类的findInLine()
方法,
这些是Javadoc for中描述的正则表达式模式。采用与之相同的模式。这是一个正则表达式(Java风格),在类的javaDoc中可以找到一个很好的文档。我就是这么做的:
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
--------------------->
这就是我学到的:模式类,FindInLine方法,以及如何使用模式参数,regex构造
谢谢大家,再次感谢你们提供的帮助
PS:电子邮件的正则表达式不完整,必须进行改进。引用,javadoc:“StringTokenizer是一个遗留类,出于兼容性原因保留,尽管在新代码中不鼓励使用它。”-
String.split()
是拆分StringsThanks的推荐方法,我不知道这一点。我应该更仔细地阅读我正在使用的所有类的Javadoc。