Re: Combining elements of a list

• To: mathgroup at smc.vnet.net
• Subject: [mg108851] Re: Combining elements of a list
• From: Bill Rowe <readnews at sbcglobal.net>
• Date: Sun, 4 Apr 2010 07:44:23 -0400 (EDT)

```On 4/3/10 at 6:09 AM, ebaugh at illinois.edu wrote:

>How could I go from: {h,e,l,l,o} to {hello}?

In[1]:= StringJoin @@ {"h", "e", "l", "l", "o"}

Out[1]= hello

which is short hand for:

In[2]:= Apply[StringJoin, {"h", "e", "l", "l", "o"}]

Out[2]= hello

>That is the first step of what I am really looking to do. Which is
>to go from: {{t,h,i,s},{i,s},{a},{t,e,s,t},{m,e,s,s,a,g,e}} to "this
>is a test message"

The sublists can be made into strings as follows:

In[3]:= StringJoin @@@ {{"t", "h", "i", "s"}, {"i", "s"}, {"a"}, {"t",
"e", "s", "t"}, {"m", "e", "s", "s", "a", "g", "e"}}

Out[3]= {this,is,a,test,message}

which is short hand for

In[4]:= Apply[StringJoin, {{"t", "h", "i", "s"}, {"i",
"s"}, {"a"}, {"t", "e", "s", "t"}, {"m", "e", "s", "s", "a", "g",
"e"}}, {1}]

Out[4]= {this,is,a,test,message}

But since no space characters are present, you cannot simply do
Apply[StringJoin,... here. First, you need to add the space
characters, then join the strings. One way to do that would be:

In[5]:= StringDrop[
Apply[StringJoin,
StringJoin @@@ (Flatten[{" ", #}] & /@ {{"t", "h", "i", "s"}, {"i",
"s"}, {"a"}, {"t", "e", "s", "t"}, {"m", "e", "s", "s", "a",
"g", "e"}})], 1]

Out[5]= this is a test message

Here, I added a space character in front of each sublist. Then I
converted the sublists to strings using StringJoin@@@. Next, I
combined the strings to a single string using
Apply[StringJoin,...]. Finally, I deleted the extraneous leading
space with StringDrop[..., 1]

```

• Prev by Date: Re: Combining elements of a list
• Next by Date: Re: Combining elements of a list
• Previous by thread: Re: Combining elements of a list
• Next by thread: Re: Combining elements of a list