Hallo,
welche dieser beiden Arten ist effektiver um einen String aufzubauen?
Variante 1:
Variante 2:
Oder lieber ganz anders mit einem StringBuilder?
Variante 1 finde ich deutlich besser lesbar bin mir aber nicht sicher ob es effektiv ist da es fast zu einfach wirkt.
welche dieser beiden Arten ist effektiver um einen String aufzubauen?
Variante 1:
Code:
public static String umlauteErsetzen(String args){
String newString2 = "";
for (int i = 0; i < args.length(); ++i){
switch(args.charAt(i)){
case 'ä': newString2 += "ae"; break;
case 'ö': newString2 += "oe"; break;
case 'ü': newString2 += "ue"; break;
case 'ß': newString2 += "ss"; break;
default: newString2 += args.charAt(i);
}
}
return newString2;
}
Variante 2:
Code:
public static String umlauteErsetzen(String args){
//Anzahl der Umlaute
int newIndex = 0;
for (int i = 0; i < args.length(); ++i){
if (args.charAt(i) == 'ä' || args.charAt(i) == 'ö' || args.charAt(i) == 'ü' || args.charAt(i) == 'ß')
++newIndex;
}
char[] newString = new char[args.length() + newIndex];
newIndex = 0;
//Aufbau des Strings mit ausgeschriebenen Umlauten
for (int i = 0; i < args.length(); ++i){
switch(args.charAt(i)){
case 'ä': newString[newIndex] = 'a'; newString[newIndex + 1] = 'e'; ++newIndex ; break;
case 'ö': newString[newIndex] = 'o'; newString[newIndex + 1] = 'e'; ++newIndex ; break;
case 'ü': newString[newIndex] = 'u'; newString[newIndex + 1] = 'e'; ++newIndex ; break;
case 'ß': newString[newIndex] = 's'; newString[newIndex + 1] = 's'; ++newIndex ; break;
default: newString[newIndex] = args.charAt(i);
}
++newIndex;
}
return new String(newString);
}
Oder lieber ganz anders mit einem StringBuilder?
Variante 1 finde ich deutlich besser lesbar bin mir aber nicht sicher ob es effektiv ist da es fast zu einfach wirkt.