Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
die Fehlermeldung sagt ja eig. schon alles. tripletVal gibt ein int zurück, du probierst dieses einem String zuzuweisen, das geht nicht
[c]dnawert=""+tripletVal(dnatrip);[/c] oder [c]dnawert=String.valueOf(tripletVal(dnatrip));[/c]
+ du hast noch ein Fehler in [c]meta=dnasequenz.substring(dna,dna+1);[/c], diese Methode gibts nicht in der String-Klasse String (Java Platform SE 6)
package aufgabe1;
public class Aufgabe7a {
/**
* @param args
*/
public static void main(String[] args) {
String dnacode="atgatg";
String Aminocode=amino(dnacode);
}
public static String amino(String triplet) {
String dnatrip, sequenz="";
int i, dnawert;
int lang=triplet.length();
for (i=0; i<=lang-3; i=i+3)
{
dnatrip=triplet.substring(i,i+3);
dnawert=tripletVal(dnatrip);
sequenz=translate(dnawert);
System.out.print(sequenz);
}
return sequenz;
}
public static String translate(int dnawert) {
String dnasequenz="FFLLSSSSYY$$CC$WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG";
String meta;
meta=dnasequenz.substring(dnawert,dnawert+1);
return meta;
}
public static int tripletVal(String t) {
int wert = 0;
for (int i = 0; i < 3; i++) {
wert += baseVal(t.substring(i, i + 1)) * Math.pow(4, 2 - i);
}
return wert;
}
public static double baseVal(String b)
{
double z=-1;
if (b.equals("t")) {
z = 0;
}
if (b.equals("c")) {
z = 1;
}
if (b.equals("a")) {
z = 2;
}
if (b.equals("g")) {
z = 3;
}
return (z);
}
{
}
}
hätte aber noch eine frage
und zwar würde ich gerne das system.out.print in den main berreich packen...
damit ich aber dann ein MM und nicht nur ein M raus bekomme müste ich in der funktion
public static String amino(String triplet)
das return ja mit in die for schleife packen aber das will bei mir nicht funktionieren wie kann ich das machen??
Naja, oder anstelle des Syso konkatenierst du diesen String immer wieder auf. (da nimmt man üblicherweise einen StringBuilder für)
Was ich grob meine ist, Zeile 21 raus, Zeile 20 vor dem Gleichheitszeichen ein Plus hinzufügen [c]sequenz += translate(dnawert);[/c]
Etwas komplizierter, aber in dne meisten Fällen deutlich besser wäre wie gesagt der StringBuilder.
Java:
StringBuilder builder = new StringBuilder();
for (i = 0; i <= lang - 3; i = i + 3) {
//wie zuvor auch ....
builder.append(translate(dnawert));
}
return builder.toString();
ist Quatsch, denn nach dem ersten return ist Schluss mit der Methode. Du kannst aber in der Schleife
das was du ausgibst in einen StringBuilder packen und diesen mit "toString" zurückgeben.
Ja super ich danke dir das mit dem + davor und dy syso in die main hat super funktioniert .
Das mit dem String Builder sagt mir im moment nicht bin noch Anfänger in Java (studium bedingt)
aber ich werde mir das mit sicherheit demnächst mal anschauen
magst du mir vlt nochmal ganz knap erklären was das + davor bewirkt wäre dir sehr dankbar.