0
votes

Comment retourner les 3 caractères moyens d'une chaîne étrange à l'aide de la méthode de sous-chaîne?

J'essaie de retourner les 3 caractères du Moyen 3 d'un mot à l'aide de la méthode de sous-chaîne, mais comment puis-je retourner les 3 lettres de Moyen 3 d'un mot si le mot peut être n'importe quelle taille (impair uniquement)?

Mon code comme ceci. xxx

La raison pour laquelle j'ai un 2 et 5 de la méthode de sous-chaîne est parce que je l'ai essayé avec le mot "perplexe" et il a renvoyé les trois lettres moyennes comme C'était censé faire. Mais si j'essaie, par exemple "xxxtoyxxx", il imprime "Xto" au lieu de "jouet".

P.s. S'il vous plaît ne me frappe pas, je suis nouveau pour coder :)


2 commentaires

Lorsque j'ai couru votre code, "exemple" renvoyé "ampli" comme prévu. Veuillez clarifier votre question.


Mon mauvais, ça marche. Je voulais dire si je tape "xxxtoyxxx", j'ai une erreur. J'essaie simplement de taper n'importe quel mot de longueur étrange et d'obtenir les 3 lettres moyennes. Donc, même si je tape "voiture", il retournera "voiture".


3 Réponses :


1
votes

Considérez le code suivant:

class Sample {
    public static void main(String[] args) {
        String text = "car";

        System.out.println(getMiddleString(text, 3));
    }

    private static String getMiddleString(String str, int length) {

        // Just return the entire string if the length is greater than or equal to the size of the String
        if (str.length() <= length) {
            return str;
        }

        // Determine the starting point of the text. We need first find the midpoint of the String and then go back
        // x spaces (which is half of the length we want to get.
        final int startingPoint = (str.length() / 2) - (length / 2);
        return "[" + str.substring(startingPoint, startingPoint + length) + "]";

    }
}


0 commentaires

0
votes

Je pense que ce que vous pouvez faire est de calculer la longueur de la chaîne puis divisée par 2. Cela vous donne la chaîne au milieu, puis vous pouvez soustraire un au démarrage et ajouter 2 à la fin. Si vous souhaitez obtenir les deux premiers pour une chaîne étrange, puis soustrayez 2 à l'index de démarrage et ajoutez 1 à la fin.

String word_length = inputWord.length()/2;
System.out.println("Enter word: " + inputWord + " Midfix: " + inputWord.substring((word_length-1, word_length+2));


0 commentaires

0
votes

Ceci obtiendra le milieu de la chaîne et renvoie les caractères au milieu, et + - 1 de l'indice intermédiaire.

public static String getMiddleThree(String str) {
    int position, length;
    if (str.length() % 2 == 0) {
        position = str.length() / 2 - 1;
        length = 2;
    } else {
        position = str.length() / 2;
        length = 1;
    }
    int start = position >= 1 ? position - 1 : position;
    return str.substring(start, position + 1);
}


0 commentaires