Get Visualforce page Name in Apex controller

How about:

String pageName = ApexPages.currentPage().getUrl().substringBetween('apex/', '?');

or, if you do not have parameters:

String pageName = ApexPages.currentPage().getUrl().substringAfter('apex/');

Check out the other String methods, there are lots to help in this regard.

Another solution

Use $CurrentPage.Name here

in VF page use

<input type="hidden" name="currentvfpage" value="{!$CurrentPage.Name}"/>

And in controller get the hidden input value

String pageName = ApexPages.currentPage().getParameters().get('currentvfpage');
system.debug('-----current page name----'+pageName);