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.
public static void main(String args[])
{
char b='0';
int mem[],i;
do{
System.out.println("Eingabe: ");
b = IO1.einchar();
}while(b=='0');
String s= new String("Affengeil");
mem=findpos(s,b);
for(i=0;i<s.length();i++)
{
System.out.println(mem[i]);
}
}
static int[] findpos(String s,char b)
{ int i=0;
int mem[]=new int[s.length()];
while((mem[i]=s.indexOf(b,mem[i]+1))>=0)
{
i++;
}
return mem;
}
Hier möchte ich einen Character eingeben und diesen durch den String jagen. findpos soll dann die stellen zurückgeben, an denen sich zb der Buchstabe 'g' befindet!
public static void main(String args[])
{
char b='0';
int mem[],i,s1[];
do{
System.out.println("Eingabe: ");
b = IO1.einchar();
}while(b=='0');
String s= new String("Affengeil");
mem=findpos(s,b);
for(i=0;i<mem.length;i++)
{
// if(mem[i]!=-1 || mem[i]!=0)
System.out.println("An "+mem[i]+".Stelle");
// else
// System.out.println("netvorhanden");
}
}
static int[] findpos(String s,char b)
{ int i=0,pos=0,j=0,s1[];
int mem[]=new int[s.length()];
s1=new int[s.length()];
while((mem[i]=s.indexOf(b,pos+1))>=0)
{
pos=mem[i];
/*if(mem[i]!=-1 || mem[i]!=0)
{
s1[j]=mem[i];
j++;
}*/
i++;
pos++;
}
return mem;
}
so funktioniert dies! Jedoch gibt er auch noch die Stellen mit 0 aus! Kann man das auch mit CharAt bewerkstelligen? und dann mit == vergleichen nachdem man ein Array durchlaufen hat?
Gibts so eine Funktion nicht schon in Java? Aber klar kann man das auch mit charAt machen:
Code:
import java.util.Vector;
public class startme {
public static void main(String[] args) {
startme s = new startme();
Vector<Integer> w = s.findPos("Ich bin ein String", 'i');
for (Integer i : w) {
System.out.println(i);
}
}
private Vector<Integer> findPos(String s, char c) {
Vector<Integer> v = new Vector<Integer>();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i)==c) {
v.add(i);
}
}
return v;
}
}
Der Einfachheit halber mit nem Vector. Er findet jetzt natürlich nur die kleinen "i" und nicht das große am Anfang.
static int[] findpos(String s, char c) {
Vector<Integer> v = new Vector<Integer>();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == c) {
v.add(i);
}
}
int[] temp = new int[v.size()];
for (int i = 0; i < v.size(); i++) {
temp[i] = v.get(i);
}
return temp;
}