\documentclass{article}
\usepackage{color}
\usepackage{soul}

\makeatletter
\newcounter{switchcolor}
\def\@switchcolor#1{%
  \ifcase#1%
      \def\currentswitchcolor{{black}}%
  \or \def\currentswitchcolor{{blue}}%
  \or \def\currentswitchcolor{[rgb]{0,1,0}}% green
  \or \def\currentswitchcolor{{red}}%
  \or \def\currentswitchcolor{{yellow}}%
  \or \def\currentswitchcolor{{cyan}}%
  \or \def\currentswitchcolor{{magenta}}%
  \else
    \resetswitchcolor
    \@switchcolor{#1}%
  \fi
}
\newcommand*{\selectswitchcolor}{%
  \@switchcolor\c@switchcolor
  \stepcounter{switchcolor}%
}
\newcommand*{\resetswitchcolor}{%
  \setcounter{switchcolor}{0}%
}
\newcommand*{\textswitchcolor}[1]{%
  \selectswitchcolor
  \expandafter\textcolor\currentswitchcolor{#1}%
}
\DeclareRobustCommand*\switchcolor{%
  \SOUL@setup
  \def\SOUL@everytoken{%
    \textswitchcolor{\the\SOUL@token}%
  }%
  \def\SOUL@everyexhyphen##1{%
    \textswitchcolor{##1}%
  }%
  \SOUL@
}
\makeatother

\begin{document}
\huge
  \switchcolor{Hallo Welt und weiterer Text}

  \resetswitchcolor
  \switchcolor{Hallo-Welt}
\end{document}