Java – suppression du premier caractère d’une chaîne

En Java, j’ai un Ssortingng:

Jamaica 

Je voudrais supprimer le premier caractère de la chaîne puis retourner amaica

Comment pourrais-je faire ça?

Utilisez la fonction subssortingng() avec un argument de 1 pour obtenir la sous-chaîne de la position 1 ( après le premier caractère) à la fin de la chaîne (en laissant le second argument out par défaut sur toute la longueur de la chaîne).

 "Jamaica".subssortingng(1); 
 public Ssortingng removeFirstChar(Ssortingng s){ return s.subssortingng(1); } 

Utilisez la subssortingng() et indiquez le nombre de caractères à découper par devant.

 Ssortingng value = "Jamaica"; value = value.subssortingng(1); 

Réponse: “amaica”

En Java, supprimez le caractère principal uniquement s’il s’agit d’un certain caractère

Utilisez l’opérateur ternary Java pour vérifier rapidement si votre personnage est présent avant de le retirer. Cela supprime le caractère principal uniquement s’il existe, si une chaîne vide est transmise, retournez la chaîne de caractères.

 Ssortingng header = ""; header = header.startsWith("#") ? header.subssortingng(1) : header; System.out.println(header); header = "foobar"; header = header.startsWith("#") ? header.subssortingng(1) : header; System.out.println(header); header = "#moobar"; header = header.startsWith("#") ? header.subssortingng(1) : header; System.out.println(header); 

Impressions:

 blankssortingng foobar moobar 

Java, supprimez toutes les instances d’un caractère n’importe où dans une chaîne:

 Ssortingng a = "Cool"; a = a.replace("o",""); //variable 'a' contains the ssortingng "Cl" 

Java, supprimez la première instance d’un caractère n’importe où dans une chaîne:

 Ssortingng b = "Cool"; b = b.replaceFirst("o",""); //variable 'b' contains the ssortingng "Col" 

Vous pouvez utiliser la méthode de sous – chaîne de la classe Ssortingng qui ne prend que l’index de début et renvoie la sous-chaîne commençant par le caractère à l’index spécifié et s’étendant jusqu’à la fin de la chaîne.

 Ssortingng str = "Jamaica"; str = str.subssortingng(1); 

La principale chose à comprendre en Java est que les chaînes sont immuables – vous ne pouvez pas les modifier. Cela n’a donc aucun sens de parler de «supprimer un caractère d’une chaîne». Au lieu de cela, vous créez une nouvelle chaîne avec uniquement les caractères souhaités. Les autres articles de cette question vous offrent une variété de moyens, mais il est important de comprendre que ceux-ci ne modifient en rien la chaîne d’origine. Toutes les références à l’ancienne chaîne continueront de faire référence à l’ancienne chaîne (sauf si vous les modifiez pour faire référence à une chaîne différente) et ne seront pas affectées par la chaîne nouvellement créée.

Cela a un certain nombre d’implications pour la performance. Chaque fois que vous «modifiez» une chaîne, vous créez en réalité une nouvelle chaîne avec toute la surcharge implicite (allocation de mémoire et récupération de place). Donc, si vous voulez apporter une série de modifications à une chaîne et ne vous souciez que du résultat final (les chaînes intermédiaires seront mortes dès que vous les modifiez), il peut être plus judicieux d’utiliser SsortingngBuilder ou SsortingngBuffer.

 public Ssortingng removeFirst(Ssortingng input) { return input.subssortingng(1); } 

vous pouvez faire comme ça:

 Ssortingng str="Jamaica"; str=str.subssortingng(1, title.length()); return str; 

ou en général:

 public Ssortingng removeFirstChar(Ssortingng str){ return str.subssortingng(1, title.length()); } 

La méthode subssortingng () renvoie une nouvelle chaîne contenant une sous- séquence de caractères actuellement contenue dans cette séquence.

La sous-chaîne commence au start spécifié et s’étend au caractère à la index end - 1 .

Il a deux formes. Le premier est

  1. Ssortingng subssortingng(int FirstIndex)

Ici, FirstIndex spécifie l’index auquel la sous-chaîne commencera. Ce formulaire renvoie une copie de la sous-chaîne qui commence à FirstIndex et s’exécute à la fin de la chaîne d’appel.

  1. Ssortingng subssortingng(int FirstIndex, int endIndex)

Ici, FirstIndex spécifie l’index de début et endIndex spécifie le point d’arrêt. La chaîne renvoyée contient tous les caractères de l’index de début, jusqu’à l’index de fin, mais sans l’inclure.

Exemple

  Ssortingng str="Amiyo"; // prints subssortingng from index 3 System.out.println("subssortingng is = " + str.subssortingng(3)); // Output "yo' 

Je suis tombé sur une situation où je devais supprimer non seulement le premier caractère (si c’était un # , mais le premier jeu de caractères).

Ssortingng mySsortingng = ###Hello World pourrait être le sharepoint départ, mais je voudrais seulement garder le Hello World . cela pourrait être fait comme suit.

 while (mySsortingng.charAt(0) == '#') { // Remove all the # chars in front of the real ssortingng mySsortingng = mySsortingng.subssortingng(1, mySsortingng.length()); } 

Pour le cas de l’OP, remplacez-le avec if et cela fonctionne également.

Une autre solution, vous pouvez résoudre votre problème en utilisant replaceAll avec des regex ^.{1} ( démo regex ) par exemple:

 Ssortingng str = "Jamaica"; int nbr = 1; str = str.replaceAll("^.{" + nbr + "}", "");//Output = amaica 

Ma version de suppression des caractères principaux, un ou plusieurs. Par exemple, Ssortingng str1 = “01234”, lors de la suppression du ‘0’, le résultat sera “1234”. Pour un Ssortingng str2 = “000123”, le résultat sera à nouveau “123”. Et pour Ssortingng str3 = “000” le résultat sera une chaîne vide: “”. Cette fonctionnalité est souvent utile lors de la conversion de chaînes numériques en nombres. L’avantage de cette solution par rapport à regex (replaceAll (…)) est que celle-ci est beaucoup plus rapide. Ceci est important lors du traitement d’un grand nombre de chaînes.

  public static Ssortingng removeLeadingChar(Ssortingng str, char ch) { int idx = 0; while ((idx < str.length()) && (str.charAt(idx) == ch)) idx++; return str.substring(idx); }