Ersetzen eines Asterix in einem String

Diskutiere Ersetzen eines Asterix in einem String im Java Basics - Anfänger-Themen Bereich.
S

Schuriko

Ich habe eine beliebige Zeichenkette als Dateiname z.B. "file*.jpg" oder "da*tei.txt". Ich weiß nicht an welcher Position der Asterix steht. Dieser Asterix soll durch eine bestimmt Zeichenkette ersetzt werden z.B. "A". Wie kann ich dieses am besten erreichen?
 
J

Javinner

Java:
public class WhatTheHell
{

    public static void main(String[] args) throws FileNotFoundException
    {
        Scanner scanner = new Scanner(new File("what.txt"));
        List<String> list = new ArrayList<>();
        while(scanner.hasNext())
        {
            list.add(scanner.next());
        }
        for(int i = 0; i < list.size(); i++)
        {
            System.out.println(list.get(i) + "Nr.: "  + i);
        }
        String asterix = "Asterix";
        int index = 0;
        for(String s : list)
        {
            if(s.equalsIgnoreCase(asterix))
            {
                index = list.indexOf(s);
                break;
            }
        }

        System.out.println(index);
    }

}
/** Output */
mumuNr.: 0
gangNr.: 1
bangNr.: 2
asterixNr.: 3
fuckNr.: 4
motherfuckerNr.: 5
sugarNr.: 6
somethingNr.: 7
3
 
mihe7

mihe7

Ich glaub er meint mit Asterix das Sternchen "*"
LOL, ja das war eine Anspielung darauf, dass er eigentlich "asterisk" meint :) Um alle Vorkommen des einzelnen Zeichens zu ersetzen, bietet sich String#replace an. Bei replaceAll und replaceFirst muss man ein wenig aufpassen, da der Suchstring ein regulärer Ausdruck sein muss.
 
X

Xyz1

Ich denke, er/sie meint Folgendes
Java:
	public static List<String> find(String unescapedRegex, List<String> l) {
		String rx = unescapedRegex.replaceAll("\\*", "\\.*");
		return l.stream().filter(s -> s.matches(rx)).collect(Collectors.toList());
	}

	public static void main(String[] args) {
		System.out.println(find("h*l", List.of("hallo", "Du da", "hoffentl", "ich", "ist alles", "heiter bis toll")));
	}

(Bin nicht gut im Dichten :D)
 
Thema: 

Ersetzen eines Asterix in einem String

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben