In der folgenden Code-Zeichenfolge wird in einer Methode mit durch Leerzeichen getrennten Zahlen übergeben, Jetzt müssen wir die Summe der kleinsten zwei Zahlen in der Zeichenfolge bereitstellen.Wie kann ich diesen Java Code optimieren?
public class SumNearZero {
public static int SumNearZero(String s) {
String temp=s;
int t1=0;
for (int i = 0; i <s.length(); i++) {
if(temp.contains(" "))
{
t1++;
temp=temp.substring(temp.indexOf(" ")+1);
}
}
int a[]=new int[++t1];
int index=0;
for(int i=0; i<s.length(); i++)
{
if(s.contains(" "))
{
a[index]=Integer.parseInt(s.substring(0,s.indexOf(" ")));
s=s.substring(s.indexOf(" ")+1);
index++;
}
}
a[index]=Integer.parseInt(s);
for (int i = 0; i < a.length; i++) {
for(int j=0; j<a.length-1; j++)
{
int c=a[j],n=a[j+1];
if(c>n)
{
int t=c;
a[j]=n;
a[j+1]=t;
} } }
int result=a.length>1 ? a[0]+a[1]:a[0];
return result;
}
public static void main(String[] args) {
System.out.println(SumNearZero("35 96 10 20 5"));
}
}
Der obige Code funktioniert gut, aber ich möchte den Code reduzieren. Wenn Sie diesbezüglich einen Vorschlag machen, werde ich gerne von Ihnen lernen.
Einschränkungen: Verwendung von Collections, vordefinierten Methoden beispiel (String.split(), Arrays.sort() ...)
Der Code funktioniert möglicherweise, aber der Stil ist grauenhaft. 1) Eindruck ist schrecklich. 2) Verstöße gegen Kennzeichnungskapitalisierungsregeln. 3) Bedeutungslose Variablennamen. 4) Keine Javadocs. IMO, sollten Sie diese Dinge beheben, bevor Sie Zeit damit verbringen, den Code zu vereinfachen/zu optimieren. Warum? Weil Sie andere Leute bitten, Ihren Code zu lesen ... jetzt. –
Wenn Sie besser als oben haben, posten Sie diesen Code als Antwort. –
Ich werde es besser machen als als das. Vergleichen Sie Ihren Codestil mit dem Code von Elliott Frisch. Sehen Sie, wie er seinen Code einprägt? Sehen Sie, wie er den richtigen Bezeichner-Stil verwendet und wie konsistente Leerzeichen, konsistente Zeilenumbrüche und so weiter? Kopiere Elliotts Codestil! –