Dies ist der Codekürzeste String-Länge zeigt in main-Methode, aber nicht, wenn sie in einem anderen Verfahren platziert
Package labone;
import java.util.*;
public class LabOne {
static Scanner reader = new Scanner(System.in);
static ArrayList<String> names = new ArrayList<>();
public static void main(String[] args) {
System.out.println("type\n 1: Exercise 1 'People's names'\n '");
int choose = reader.nextInt();
switch(choose) {
case 1 :
PeopleNames();
break;
default:
System.out.println("invaild choice");
break;
}
}
public static void PeopleNames() {
//////// PEOPLES NAMES ////////
System.out.println("Enter names of people, if done enter 'done'");
String Name = reader.nextLine();
while(!"done".equals(Name)){ //if user type done exit from adding names
names.add(Name); // otherwise add names
Name = reader.nextLine(); //reads what user entered
}
//User typed 'done' and it displays the names in the arraylist
PrintArray(); // method
//Find Longest String
int largestString = names.get(0).length();
int index = 0;
for (int i = 0; i<names.size(); i++){
if(names.get(i).length() > largestString) {
largestString = names.get(i).length();
index = i;
}
}
System.out.println(names.get(index) + " is the longest name and the length is " + largestString);
//Find Shortest String
int shortestString = names.get(0).length();
int index1 = 0;
for (int i = 0; i<names.size(); i++){
if(names.get(i).length() < shortestString) {
shortestString = names.get(i).length();
index1 = i;
}
}
System.out.println(names.get(index1) + " is the shortest name and the length is " + shortestString);
//Find the Average of all the Strings
double num = names.size(); //number of elements in arraylist(size())
double length =-1;
for(String str : names){
length = length + str.length(); //sum of the lengths in the arraylist
}
length = length + names.size()-1;
num = length/num; //divide the sum with the size()
System.out.println("The average length of the names in the list: "+num);
}
//Method to view arrayList (names)
public static void PrintArray() {
System.out.println("---------");
for(String Name : names){
System.out.println(Name);
}
}
}
Ergebnis Lauf:
Typ 1: Übung 1 'Volkes Namen'
Geben Sie Namen von Personen ein, wenn Sie fertig sind
ashmeen
blom
erledigt
ashmeen ist der längste Name und die Länge beträgt 7
der kürzeste Name ist und die Länge ist 0 GEBEN ANTWORT NICHT
Die durchschnittliche Länge der Namen in der Liste: 4.0
BUILD ERFOLGREICH (Gesamtzeit: 12 Sekunden)
Wenn ich den Code in der Hauptmethode platzieren gibt es die Antwort der kürzesten Zeichenfolge und längsten Zeichenfolge, aber wenn der Code in PeopleNames-Methode platziert wird, zeigt es nur die längste Zeichenfolge aber es zeigt nicht die kürzeste Linie G.
Können Sie beschreiben, welche Schritte Sie unternommen haben, um diesen Code selbst zu debuggen? "Es funktioniert in der Hauptmethode" kann ein bisschen vage sein. – andrel
Ich habe das Ergebnis hinzugefügt. – Person23456
Wenn ich den Code in der main-Methode platziere, gibt es die Antwort auf die kürzeste und längste Zeichenkette. Wenn der Code jedoch in der PeopleNames-Methode platziert wird, wird nur die längste Zeichenkette angezeigt, aber nicht die kürzeste Zeichenkette. – Person23456