строковые шаблоны в методе findInLine в Java - PullRequest
2 голосов
/ 27 августа 2010

Какие строковые шаблоны мы можем использовать с методом findInLine (). Например, если вводом является адрес электронной почты, например, vinny.kinny@gmail.com, как мне найти только «vinny.kinny» из ввода, используя метод findInLine () в java.

Ответы [ 6 ]

1 голос
/ 27 августа 2010

Предполагая, что вы говорите о методе findInLine() класса Scanner, это шаблоны регулярных выражений, описанные в Javadoc для java.util.regex.Pattern.

1 голос
/ 27 августа 2010

Нет прямого ответа на ваш вопрос, но для этого я буду использовать StringTokenizer:

new StringTokenizer(emailString, "@");
1 голос
/ 27 августа 2010

Когда вы пишете о методе, лучше указать, в каком классе (из какого пакета / библиотеки и т. Д.) Его можно найти.
Я не знаю всего Java API, отнюдь нет, но я никогда не слышал о методе findInLine ().
Если вы не хотели написать этот метод самостоятельно, это не очень понятно ...

Если вы планируете написать этот метод, вы можете использовать любой метод в String class. Например, indexOf () может позволить вам найти индекс «@», а затем вы можете использовать метод substring () для извлечения части перед ней.
Или вы можете использовать регулярные выражения, если вам нужна большая гибкость.

1 голос
/ 27 августа 2010

посмотрите на регулярное выражение в Java:

http://java.sun.com/developer/technicalArticles/releases/1.4regex/

0 голосов
/ 29 августа 2010

Вот что я сделал:

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 и как использовать параметр pattern, конструкции регулярных выражений.

Спасибо всем, еще раз спасибо за помощь, которую вы оказали!

PS: регулярное выражение для электронной почты не является полным и должно быть уточнено.

0 голосов
/ 27 августа 2010

Sanner#findInLine(String regExp) принимает тот же шаблон, что и String#split(String regExp). Это регулярное выражение (стиль Java), и хорошую документацию можно найти в javaDoc класса Pattern.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...