Matt Donalds
Matt Donalds

Reputation: 71

How to get multi sub strings from String, Android/Java

I know there are similar questions regarding to this. However, I tried many solutions and it just does not work for me.

I need help to extract multiple substrings from a string:

String content = "Ben Conan General Manager 90010021 [email protected]";

Note: The content in the String may not be always in this format, it may be all jumbled up.

I want to extract the phone number and email like below:

1. 90010021

2. [email protected]

In my project, I was trying to get this result and then display it into 2 different EditText. I have tried using pattern and matcher class but it did not work.

I can provide my codes here if requested, please help me ~

--------------------EDIT---------------------

Below is my current method which only take out the email address:

private static final String EMAIL_PATTERN =
            "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
                        "\\@" +
                        "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
                        "(" +
                            "\\." +
                            "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
                        ")+";



public String EmailValidator(String email) {

        Pattern pattern = Pattern.compile(EMAIL_PATTERN);
        Matcher matcher = pattern.matcher(email);

        if (matcher.find()) {

            return email.substring(matcher.start(), matcher.end());

        } else {

            // TODO handle condition when input doesn't have an email address

        }

        return email;
    }

Upvotes: 1

Views: 140

Answers (4)

rock321987
rock321987

Reputation: 11042

Try this regex for phone number

[\d+]{8}  ---> 8 represents number of digits in phone number

You can use

[\d+]{8,} ---> if you want the number of more than 8 digits

Use appropriate JAVA functions for matching. You can try the results here http://regexr.com/

For email, it depends whether the format is simple or complicated. There is a good explanation here

http://www.regular-expressions.info/index.html

Upvotes: 0

String.split(...) is a java method for that.

EXAMPLE:

String content = "Ben Conan, General Manager, 90010021, [email protected]";
String[] selection = content.split(",");
System.out.println(selection[0]);
System.out.println(selection[3]);

BUT if you want to do a Regex then take a look at this:

https://stackoverflow.com/a/16053961/982161

Upvotes: 0

genaray
genaray

Reputation: 1190

maybe you should do this instead of yours :

String[] Stringnames = new String[5]

Stringnames [0] = "your phonenumber"
Stringnames[1] = "your email"

System.out.println(stringnames)

Or :

String[] Stringnames = new String[2]
String[] Stringnames = {"yournumber","your phonenumber"};

System.out.println(stringnames [1]);

Upvotes: 0

Vivek Mishra
Vivek Mishra

Reputation: 5705

You can separate your string into arraylist like this

    String str = "Ben Conan, General Manager, 90010021, [email protected]";
List<String> List = Arrays.asList(str.split(" "));

Upvotes: 2

Related Questions