How to center the middle of a table to be in the center of the page?
You could give a fixed length to the columns of the tables.
If you want the columns to occupy all the space possible in the half of the line, you have to calculate their column width in this way, in order to not have an overfull hbox:
.5\linewidth
(half line)
-2\tabsep
(minus the two spaces before and after the text column)
-.5\arrayrulewidth
(minus half of the width of the vertical bar).
In my MWE I use the calc
package, without it you can write \setlength{\myhalfpage}{\dimexpr .5\linewidth-2\tabcolsep-.5\arrayrulewidth}
to get the same result.
You can use lockstep's definitions with this length.
\documentclass{article}
\usepackage{array}
\usepackage{calc}
\newlength{\myhalfpage}
\setlength{\myhalfpage}{.5\linewidth-2\tabcolsep-.5\arrayrulewidth}
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{\myhalfpage}}
\newcolumntype{C}{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{\myhalfpage}}
\newcolumntype{R}{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{\myhalfpage}}
\begin{document}
\begin{center}
\begin{tabular}{R|L}
short & long long long \\
short & long long long \\
short & long long \\
short & long long long\\
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{R|L}
long long & short
\end{tabular}
\end{center}
\end{document}
You may need to define new column type (thanks @lockstep in his answer)
\documentclass{article}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\begin{tabular}{ R{0.465\textwidth} | L{0.465\textwidth}}
short & long long long \\
short & long long long \\
short & long long \\
short & long long long\\
\end{tabular}
\begin{tabular}{ R{0.465\textwidth} | L{0.465\textwidth}}
long long & short
\end{tabular}
\end{document}
which gives