Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Java Data Structures - Retired Organizing Data Splitting Strings

Sorry, I've looked at some other answers, but I still don't understand.

public String[] getWords() { return mBody.split("\s+"); for(BlogPost blogPost : mBody) System.out.println(blogPost); }

mBody does not work, and I'm not sure what should be in it's place?

com/example/BlogPost.java
package com.example;

import java.util.Date;

public class BlogPost {
  private String mAuthor;
  private String mTitle;
  private String mBody;
  private String mCategory;
  private Date mCreationDate;

  public BlogPost(String author, String title, String body, String category, Date creationDate) {
    mAuthor = author;
    mTitle = title;
    mBody = body;
    mCategory = category;
    mCreationDate = creationDate;
  }

  public String getAuthor() {
    return mAuthor;
  }

  public String getTitle() {
    return mTitle;
  }

  public String getBody() {
    return mBody;
  }

  public String getCategory() {
    return mCategory;
  }

  public Date getCreationDate() {
    return mCreationDate;
  }
  public String[] getWords() {
    return mBody.split("\\s+");
  for(BlogPost blogPost : BlogPost)
    System.out.println(blogPost);
  }

}

3 Answers

I will show you my code and try to explain each part of it. Here is my code:

 public String[] getWords(){
       String[] words = mBody.split("\\s+");
    return words;
  }

Line 1: Method header-

You want to have your method return an array of type String that contains all of the words in the variable "mBody", or whatever words and phrases might be in there.

Line 2:

You then want to create a local array variable to store the words in. Now if you have noticed, I used the .split() method- this method splits up the String of words into substrings, and whatever you put in the parenthesis (called a delimiter) is how it is going to split up the String; in this case we want to do white space characters. The split method uses what is called regex or regular expressions; you can look up Regex on the web to learn more about them and how to use them. So now our words[] array contains all of the words broken up by our .split() method and now all that is left to do is return our words[] array that we created (line 3), and that is it!

I hope this helps, code on!

Ah, makes sense. Thank you for the detailed breakdown!

No problem :)