Je veux juste ajouter un espace entre chaque caractère d'une chaîne. Quelqu'un peut-il m'aider à comprendre comment faire cela?
Par exemple. étant donné "JAYARAM"
, j'ai besoin de "J A Y A R A M"
comme résultat.
À moins que vous ne vouliez parcourir la chaîne et le faire "manuellement", vous pouvez le résoudre comme suit:
yourString.replace("", " ").trim()
Ceci remplace toutes les "sous-chaînes vides" par un espace, puis élimine les espaces de début/fin.
Une solution alternative utilisant des expressions régulières:
yourString.replaceAll(".(?=.)", "$0 ")
En gros, il dit "Remplacez tous les caractères (sauf le dernier) par le caractère lui-même suivi d'un espace".
Documentation de ...
String.replaceAll
(y compris la syntaxe $0
)(?=.)
)StringBuilder result = new StringBuilder();
for (int i = 0; i < input.length(); i++) {
if (i > 0) {
result.append(" ");
}
result.append(input.charAt(i));
}
System.out.println(result.toString());
Parcourez les caractères de la chaîne et lors du stockage dans un nouveau tableau/chaîne, vous pouvez ajouter un espace avant d'ajouter chaque caractère.
Quelque chose comme ça :
StringBuilder result = new StringBuilder();
for(int i = 0 ; i < str.length(); i++)
{
result = result.append(str.charAt(i));
if(i == str.length()-1)
break;
result = result.append(' ');
}
return (result.toString());
Faites exploser votre chaîne en un tableau de caractères, passez en boucle sur le tableau de caractères et créez une nouvelle chaîne en succédant à un caractère par un espace.
Cela fonctionnerait pour insérer un caractère quelconque dans une position particulière de votre chaîne.
public static String insertCharacterForEveryNDistance(int distance, String original, char c){
StringBuilder sb = new StringBuilder();
char[] charArrayOfOriginal = original.toCharArray();
for(int ch = 0 ; ch < charArrayOfOriginal.length ; ch++){
if(ch % distance == 0)
sb.append(c).append(charArrayOfOriginal[ch]);
else
sb.append(charArrayOfOriginal[ch]);
}
return sb.toString();
}
Alors appelle ça comme ça
String result = InsertSpaces.insertCharacterForEveryNDistance(1, "5434567845678965", ' ');
System.out.println(result);
package arrays;
import Java.util.Scanner;
public class Arrays {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int j;
System.out.println("How much values u want to enter : -");
j = input.nextInt();
String array[]= new String[j];
for(int i=0;i<j;i++)
{
System.out.println("Enter The index "+ (i+1) +" Value");
array[i] = input.next();
}
input.close();
System.out.println("Thanks Thats It \n");
System.out.println("The values u Entered \n");
for (int k=0;k<j;k++)
{
System.out.println("Enterd values are : - "+ array[k]);
}
}
}
Maintenant, je dois entrer deux mots comme celui-ci : - Sibi haseb
, mais il ne montre que sibi
. Comment puis-je l'obtenir pour montrer les deux?
public static void main(String[] args) {
String name = "Harendra";
System.out.println(String.valueOf(name).replaceAll(".(?!$)", "$0 "));
System.out.println(String.valueOf(name).replaceAll(".", "$0 "));
}
Cela donne comme résultat l'utilisation suivante de l'un des éléments ci-dessus:
H a n e r a
H a n e r a
Je crée une méthode Java à cet effet avec un caractère dynamique
public String insertSpace(String myString,int indexno,char myChar){
myString=myString.substring(0, indexno)+ myChar+myString.substring(indexno);
System.out.println(myString);
return myString;
}
C'est le même problème que de réunir un tableau avec des virgules. Cette version ne crée correctement que des espaces entre les caractères et évite une branche inutile dans la boucle:
String input = "Hello";
StringBuilder result = new StringBuilder();
if (input.length() > 0) {
result.append(input.charAt(0));
for (int i = 1; i < input.length(); i++) {
result.append(" ");
result.append(input.charAt(i));
}
}