Display text on gameobject via user inputs

Hello! I have a telephone model and i am trying the numbers to be changed as the user is dialing a phone number. So far i have managed to display every phone button pressed on the telephone screen.But when i press the same button again (e.g. 1), it is sot redisplayed, as it should.

here is the code.

using UnityEngine;
 using System.Collections;
 
 public class TextController : MonoBehaviour {
 
	public draw3 buttons;
    private string displayNum;
	private string num;
	public string n1, n2, n3, n4, n5, n6, n7, n8, n9, n0, st, sh;

    private TextMesh testMesh;

    void Update () {
		if (Input.GetMouseButton (0)) {
			if (buttons.button.gameObject.name == "big_drawers_Plane.037_1") {
				n1 = "1";
				num = n1;
			}
			if (buttons.button.gameObject.name == "big_drawers_Plane.037_2") {
				n2 = "2";
			}
			
			if (buttons.button.gameObject.name == "big_drawers_Plane.037_#") {
				sh = "#";
			}
		}
		else
			n1 = "";

		displayNum = num+n2+sh;
		testMesh = GetComponent<TextMesh> ();
		testMesh.text = displayNum;
	}
}

Rather than using such a weird and complicated way of displaying the phone number, you should just append the newly pressed number to the displayNum.

void Update () {
         if (Input.GetMouseButton (0)) {
             if (buttons.button.gameObject.name == "big_drawers_Plane.037_1") {
                 displayNum += "1";
             }
             if (buttons.button.gameObject.name == "big_drawers_Plane.037_2") {
                 displayNum += "2";
             }
             
             if (buttons.button.gameObject.name == "big_drawers_Plane.037_#") {
                 displayNum += "#";
             }
         }
 
         testMesh = GetComponent<TextMesh> ();
         testMesh.text = displayNum;
     }