Using a number/brackets in a function name?

So basically I have a script which selects buttons, and a “buy” button, I’m converting the selected buttons name to a string and calling a function with it, when buy button is clicked. Though when I create a function name like 'Button (1) () 'it doesn’t compile, any help is appreciated, thanks in advance!

P.S. Sorry I can’t show my scripts but hopefully my description is clear enough.

@NoseKills Your post really help guide me in the right direction, I posted the stages of my script here, incase anyone wanted to see it, I went from this mess:

public Boss boss;
private int SelectedCharacter;
private GameObject highlighted;
private string highlightedString;
public GameObject[] charcs;
public bool[] unlocked;
public int cash;

void Start(){
	
}
void Update(){
	highlighted = boss.minButtonNum;
	highlightedString = highlighted.name;
	cash = PlayerPrefs.GetInt ("cash", 0);
}

public void OnClick(){
	if (highlightedString == "Button (1)") {
		Button1 ();
	}
	if (highlightedString == "Button (2)") {
		Button2 ();
	}
	if (highlightedString == "Button (3)") {
		Button3 ();
	}
	if (highlightedString == "Button (4)") {
		Button4 ();
	}
	if (highlightedString == "Button (5)") {
		Button5 ();
	}
}

void Button1(){
	if (PlayerPrefs.GetInt ("Bought_" + highlightedString, 0) == 1) {
		SelectedCharacter = 1;
		PlayerPrefs.SetInt ("SelectedCharacter", SelectedCharacter);
		Debug.Log (SelectedCharacter);
	} else if (cash > 100) {
		SelectedCharacter = 1;
		PlayerPrefs.SetInt ("SelectedCharacter", SelectedCharacter);
		PlayerPrefs.SetInt ("Bought_" + highlightedString, 1);
		Debug.Log (SelectedCharacter);
		cash -= 100;
	}
}
void Button2(){
	SelectedCharacter = 2;
	PlayerPrefs.SetInt ("SelectedCharacter", SelectedCharacter);
	Debug.Log (SelectedCharacter);
}
void Button3(){
	SelectedCharacter = 3;
	PlayerPrefs.SetInt ("SelectedCharacter", SelectedCharacter);
	Debug.Log (SelectedCharacter);
}
void Button4(){
	SelectedCharacter = 4;
	PlayerPrefs.SetInt ("SelectedCharacter", SelectedCharacter);
	Debug.Log (SelectedCharacter);
}
void Button5(){
	SelectedCharacter = 5;
	PlayerPrefs.SetInt ("SelectedCharacter", SelectedCharacter);
	Debug.Log (SelectedCharacter);
}

To this:

void Awake() {
	buttonFunctions = new Dictionary<string, Action>();
	buttonFunctions.Add("Button (1)", ButtonFunction1);
	buttonFunctions.Add("Button (2)", ButtonFunction2);

}

void Update () {
	highlighted = boss.minButtonNum;
	highlightedString = highlighted.name;
	cash = PlayerPrefs.GetInt ("cash", 0);
}
public void OnClick(){

	Action buttonAction;
	if (buttonFunctions.TryGetValue(highlightedString, out buttonAction)) {
		buttonAction();
	} else {
		Debug.LogError("Button " + highlightedString + " was pressed but there was not Action for it in 'buttonFunctions'");
	}
}

void Buying(){
	if (PlayerPrefs.GetInt ("Bought_" + highlightedString, 0) == 1) {
		SelectedCharacter = int.Parse(highlightedString);
		PlayerPrefs.SetInt ("SelectedCharacter", SelectedCharacter);
		Debug.Log (SelectedCharacter);
	} else if (cash > 100) {
		SelectedCharacter = 1;
		PlayerPrefs.SetInt ("SelectedCharacter", SelectedCharacter);
		PlayerPrefs.SetInt ("Bought_" + highlightedString, 1);
		Debug.Log (SelectedCharacter);
		cash -= 100;
	}
}

private void ButtonFunction1() {
	Debug.Log("Button 1 was pressed");
}

private void ButtonFunction2() {
	Debug.Log("Button 2 was pressed");
}
}

And finally ended up using this system, which also allows me to have more objects in editor to buy without having to edit the scripts:

using System.Text.RegularExpressions;

public class Selector : MonoBehaviour {

public Boss boss;
private int SelectedCharacter;
private int WantedSelectedCharacter;
private GameObject highlighted;
private string highlightedString;
public int cash;

void Awake() {
	//If i need to test>>PlayerPrefs.SetInt ("cash", 100);
}

void Update () {
	highlighted = boss.minButtonNum;//selectedbutton
	highlightedString = highlighted.name;
	cash = PlayerPrefs.GetInt ("cash", 0);
}
public void OnClick(){

	Buying ();
}

void Buying(){
	Debug.Log (cash);
	if (PlayerPrefs.GetInt ("Bought_" + highlightedString, 0) == 1) {
		Debug.Log ("Cash is still "+cash);
		WantedSelectedCharacter = int.Parse (Regex.Replace (highlightedString, "[^0-9]", ""));
		//^^Getting int from the name of selected Button^^
		SelectedCharacter = WantedSelectedCharacter;
		PlayerPrefs.SetInt ("SelectedCharacter", SelectedCharacter);
		Debug.Log ("Selected Character is" + SelectedCharacter);
	} else if (cash >= 100) {
		Debug.Log ("Cash is "+cash);
		WantedSelectedCharacter = int.Parse (Regex.Replace (highlightedString, "[^0-9]", ""));
		SelectedCharacter = WantedSelectedCharacter;
		PlayerPrefs.SetInt ("SelectedCharacter", SelectedCharacter);
		PlayerPrefs.SetInt ("Bought_" + highlightedString, 1);
		Debug.Log ("Selected Character is" + SelectedCharacter);
		cash -= 100;
		PlayerPrefs.SetInt ("cash", cash);
	} else {
		Debug.Log ("Not enough money to buy character" + highlightedString);
	}
}

}

You really help guide me in the right direction,thanks again.