how to concatenate string variables into a third?

You don't need to use {} unless you're going to use bash variable parameters or immediate append a character that would be valid as part of the identifier. You also don't need to use double quotes unless you parameters will include special characters.

x=foo
y=bar
z=$x$y        # $z is now "foobar"
z="$x$y"      # $z is still "foobar"
z="$xand$y"   # does not work
z="${x}and$y" # does work, "fooandbar"
z="$x and $y" # does work, "foo and bar"

simply concatenate the variables:

mystring="$string1$string2"

In case you need to concatenate variables with literal strings:

string1=hello
string2=world
mystring="some ${string1} arbitrary ${string2} text"

echo $mystring will produce:

some hello arbitrary world text