Convert the Serial.Println to string I'm working with VirtualWire and I'm trying to get a string value out of the Serial.println in the loop. I've tried create a string and add the message[i] , but surprisingly message[i] becomes an int when added. Serial.println outputs the string correctly, but the string that I get from message[i] is just numbers...

#include &lt;VirtualWire.h&gt;
byte message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messages
byte messageLength = VW_MAX_MESSAGE_LEN; // the size of the message
String sensorname;
void setup(){
  Serial.begin(9600);
  Serial.println("Device is ready");
  // Initialize the IO and ISR
  vw_setup(2000); // Bits per sec
  vw_rx_start(); // Start the receiver
  }
void loop(){

  if (vw_get_message(message, &amp;messageLength)){
    Serial.print("Received: ");
    for (int i = 0; i &lt; messageLength; i++){
      Serial.write(message[i]);
      sensorname += message[i];
      }
      Serial.println();
      Serial.pintln("Name of sensor: " + sensorname);
      sensorname="";  //Reestart the string
      }
}


I'm quite new with VirtualWire so I don't know if there is command to get the message and pass it directly to string...Any help will be appreciated!

EDIT 
I think I dind't express myself well. In my original question I didn't add the String sensor name

The Response I get in the Serial is the following:

Device is ready    
SensorA
Name of sensor: 8310111011511111465


My aim is to instead of having as sensorname=8310111011511111465, have sensorname=SensorA
Those numbers are the numerical ASCII representation of the characters.

83 = S
101 = e
110 = n
... etc ...


(Find the whole list here: http://www.asciitable.com/)

The reason you are ending up with numbers is because of the type of variable you are receiving the data into - a byte.

A byte stores a number between 0 and 255.  When you add that byte to a String the compiler assumes you want to append a number, since it is a numerical type that you are using.

If you instead tell it to use a char type then the compiler should realise "Ah, this is the numeric representation of a character - I will add the character instead".

You can either change the whole array type:

char message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messages


Or cast the variable to be the right type when you append it:

  sensorname += (char)message[i];


Or better still, don't use the String class since it is really too heavyweight and prone to memory issues for use on a little microcontroller.  Stick to C strings. They take a little more getting used to, but are so much more microcontroller friendly.