Java array rückwärts?
package uebung1;
import java.util.Random;
public class Felder {
public int[] fuellen(int o, int l) {
int zahlen[] = new int[l];
Random rnd = new Random();
for (int x = 0; x < zahlen.length; x++) {
zahlen[x] = rnd.nextInt(o + 1);
}
return zahlen;
}
public int[] fuellen(int u, int o, int l) {
int zahlen[] = new int[l];
Random rnd = new Random();
for (int x = 0; x < zahlen.length; x++) {
zahlen[x] = rnd.nextInt(o - u) + u;
}
return zahlen;
}
public void ausgeben(int zahlen[]) {
for (int x = 0; x < zahlen.length; x++) {
if (x == 0) {
System.out.print("[");
}
System.out.print(zahlen[x]);
if (x != zahlen.length - 1) {
System.out.print(", ");
}
if (x == zahlen.length - 1) {
System.out.println("]");
}
}
}
public void ausgebenrueckwaerts(int zahlen[]) {
for (int x = zahlen.length-1; x >= 0; x--) {
if (x == zahlen.length-1) {
System.out.print("[");
}
System.out.print(zahlen[x]);
if (x != 0) {
System.out.print(", ");
}
if (x == 0) {
System.out.println("]");
}
}
}
public void drei_fuenf(int zahlen[]) {
for (int x = 0; x < zahlen.length; x++) {
if (zahlen[x] % 3 == 0 && zahlen[x] % 5 == 0) {
System.out.println("Hello Zahl: " + zahlen[x]);
} else if (zahlen[x] % 3 == 0) {
System.out.println("Fizz Zahl: " + zahlen[x]);
} else if (zahlen[x] % 5 == 0) {
System.out.println("Buzz Zahl: " + zahlen[x]);
}
}
}
public boolean finde(int z, int zahlen[]) {
boolean found = false;
for (int x = 0; x < zahlen.length; x++) {
if (zahlen[x] == z) {
found = true;
break;
}
}
return found;
}
public int finde_pos(int z, int zahlen[]) {
int pos = -1;
for (int i = 0; z != zahlen[i]; i++) {
pos++;
}
pos++;
return pos;
}
public int finde_anz(int z, int zahlen[]) {
int anz = 0;
for (int i = 0; i < zahlen.length; i++) {
if (zahlen[i] == z) {
anz++;
}
}
return anz;
}
}
Wow. So viel Code! Was genau ist Deine Frage?
Hat sich geklärt mit der Antwort von FaTech. Danke euch trotzdem. Wollte nur sichergehen ob das stimmt was ich gemacht habe
5 Antworten
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
probe p1 = new probe();
int zahlen[];
int o;
int u;
int l;
int z;
boolean weiter = true;
while(weiter == true) {
System.out.println("Geben sie eine Länge ein: ");
l = scan.nextInt();
System.out.println("Geben sie eine Obergrenzen: ");
o = scan.nextInt();
System.out.println("Wollen sie eine Untergrenze y/n?");
String a = scan.next();
if(a.equalsIgnoreCase("n")) {
zahlen = p1.fuellen(o, l);
System.out.print("[");
p1.ausgeben(zahlen);
System.out.print("]");
System.out.println("");
System.out.println("");
System.out.println("Wollen sie das Array rückwärts ausgeben lassen y/n?");
String a1 = scan.next();
if(a1.equalsIgnoreCase("y")){
System.out.print("[");
p1.rueckwaertsausgeben(zahlen);
System.out.println("]");
System.out.println("");
}
System.out.println("Wollen sie eine beliebige Zahl im Array finden y/n? ");
String a01 = scan.next();
if(a01.equalsIgnoreCase("y")) {
System.out.println("");
System.out.println("Geben sie eine Zahl ein, die sie im Array finden wollen: ");
z = scan.nextInt();
if(p1.finde(z, zahlen) == true) {
System.out.println("");
System.out.println("Ihre Zahl ist "+p1.finde_anz(z, zahlen)+" mal vorhanden und befindet sich an der Stelle "+ (p1.finde_pos(z, zahlen)+1));
System.out.println("");
}
else {
System.out.println("Ihre Zahl ist nicht vorhanden ");
}
}
}
else {
System.out.println("Geben sie eine Untergrenze ein: ");
u = scan.nextInt();
zahlen = p1.fuellen(o, l, u);
System.out.print("[");
p1.ausgeben(zahlen);
System.out.print("]");
System.out.println("");
System.out.println("");
System.out.println("Wollen sie das Array rückwärts ausgeben lassen y/n?");
String a22 = scan.next();
if(a22.equalsIgnoreCase("y")){
System.out.print("[");
p1.rueckwaertsausgeben(zahlen);
System.out.println("]");
System.out.println("");
}
System.out.println("Wollen sie eine beliebige Zahl im Array finden y/n? ");
String a5 = scan.next();
if(a5.equalsIgnoreCase("y")) {
System.out.println("");
System.out.println("Geben sie eine Zahl ein, die sie im Array finden wollen: ");
z = scan.nextInt();
if(p1.finde(z, zahlen) == true) {
System.out.println("");
System.out.println("Ihre Zahl ist "+p1.finde_anz(z, zahlen)+" mal vorhanden und befindet sich an der Stelle "+ (p1.finde_pos(z, zahlen)+1));
System.out.println("");
}
else {
System.out.println("Ihre Zahl ist nicht vorhanden ");
}
System.out.println("Wollen sie wissen ob ihre Zahl durch eine andere teilbar ista y/n?");
String an = scan.next();
if(an.equalsIgnoreCase("y")){
System.out.println("Geben sie eine Zahl zur Überprüfung ein: ");
int a2 = scan.nextInt();
if(p1.teilen(z, a2) == true) {
System.out.println("Ist teilbar");
}
else {
System.out.println("Ist nicht teilbar");
}
}
}
}
System.out.println("");
System.out.println("Wollen sie eine neue Liste erstellen y/n? ");
String a3 =scan.next();
if(a3.equalsIgnoreCase("n")) {
weiter = false;
System.out.println("Programm abgebrochen");
}
}
scan.close();
}
}
import java.util.Random;
public class probe {
public int[] fuellen(int o, int l) {
int zahlen[] = new int[l];
Random rnd = new Random();
for(int x = 0; x<zahlen.length; x++) {
zahlen[x] = rnd.nextInt(o+1);
}
return zahlen;
}
public int[] fuellen(int o, int l, int u) {
int zahlen[] = new int[l];
Random rnd = new Random();
for(int x = 0; x<zahlen.length; x++) {
zahlen[x] = rnd.nextInt((o-u)+u)+1;
}
return zahlen;
}
public void ausgeben(int zahlen[]) {
for(int x = 0; x < zahlen.length; x++) {
System.out.print(zahlen[x]);
if(x != zahlen.length -1) {
System.out.print(", ");
}
}
}
public void rueckwaertsausgeben(int zahlen[]) {
int j = zahlen.length -1;
for(int x = 0; x<zahlen.length; x++) {
System.out.print(zahlen[j]);
j--;
if(x != zahlen.length -1) {
System.out.print(", ");
}
}
}
public boolean finde(int z, int zahlen[]) {
boolean found = false;
for(int x = 0; x<zahlen.length; x++) {
if(zahlen[x] == z) {
found = true;
}
}
return found;
}
public int finde_pos(int z, int zahlen[]) {
int pos = -1;
for(int i = 0; z != zahlen[i]; i++) {
pos++;
}
pos++;
return pos;
}
public int finde_anz(int z, int zahlen[]) {
int anz = 0;
for(int x = 0; x<zahlen.length; x++) {
if(zahlen[x] == z) {
anz++;
}
}
return anz;
}
public boolean teilen(int z, int a2){
boolean geht = false;
if(a2 % z == 0) {
geht = true;
}
return geht;
}
}
Statt for(...;...;i++) einfach for(...;...;i--) benutzen und runter zählen lassen. Dann fängt der hinten an
Zahlen aus altem Array rückwärts in neues Array einsetzen
public int[] flip(int zahlen[]) {
int flip[] = new int[zahlen.length]
int j = 0;
for (int x = zahlen.length-1; x >= 0; x--) {
flip[j] = zahlen[x];
j++;
}
return flip;
}
Zahlen aus altem Array rückwärts in neues Array einsetzen
public int[] flip(int zahlen[]) {
int flip[] = new int[zahlen.length]
int j = 0;
for (int x = zahlen.length-1; x >= 0; x--) {
flip[j] = zahlen[x];
j++;
}
return flip;
}
public int[] rueckwaerts(int[] zahlen) {
int i = zahlen.length;
i--;
for (i = i; i >= 0; i--) {
System.out.println(zahlen[i]);
}
return zahlen;
}