gingergeek
gingergeek

Reputation: 249

How to convert a String into an array of Strings containing one character each

I have a small problem here.I need to convert a string read from console into each character of string. For example string: "aabbab" I want to this string into array of string.How would I do that?

Upvotes: 8

Views: 124470

Answers (6)

cbalawat
cbalawat

Reputation: 1131

String x = "stackoverflow";
String [] y = x.split("");

Upvotes: 17

JuanZe
JuanZe

Reputation: 8157

Use toCharArray() method. It splits the string into an array of characters:

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#toCharArray%28%29

String str = "aabbab";
char[] chs = str.toCharArray();

Upvotes: 1

VonC
VonC

Reputation: 1323823

If by array of String you mean array of char:

public class Test
{
    public static void main(String[] args)
    {
        String test = "aabbab ";
        char[] t = test.toCharArray();

        for(char c : t)
            System.out.println(c);    

        System.out.println("The end!");    
    }
}  

If not, the String.split() function could transform a String into an array of String

See those String.split examples

/* String to split. */
String str = "one-two-three";
String[] temp;

/* delimiter */
String delimiter = "-";
/* given string will be split by the argument delimiter provided. */
temp = str.split(delimiter);
/* print substrings */
for(int i =0; i < temp.length ; i++)
  System.out.println(temp[i]);

The input.split("(?!^)") proposed by Joachim in his answer is based on:

  • a '?!' zero-width negative lookahead (see Lookaround)
  • the caret '^' as an Anchor to match the start of the string the regex pattern is applied to

Any character which is not the first will be split. An empty string will not be split but return an empty array.

Upvotes: 5

DaveJohnston
DaveJohnston

Reputation: 10151

You mean you want to do "aabbab".toCharArray(); ? Which will return an array of chars. Or do you actually want the resulting array to contain single character string objects?

Upvotes: 2

Joachim Sauer
Joachim Sauer

Reputation: 308021

String[] result = input.split("(?!^)");

What this does is split the input String on all empty Strings that are not preceded by the beginning of the String.

Upvotes: 21

lutz
lutz

Reputation:

You can use String.split(String regex):

String input = "aabbab";
String[] parts = input.split("(?!^)");

Upvotes: 1

Related Questions