J'ai une ficelle.
string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
J'ai besoin d'ajouter une nouvelle ligne après chaque occurrence du symbole "@" dans la chaîne.
Ma sortie devrait être comme ça
fkdfdsfdflkdkfk@
dfsdfjk72388389@
kdkfkdfkkl@
jkdjkfjd@
jjjk@
string text = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
text = text.Replace("@", "@" + System.Environment.NewLine);
Vous pouvez ajouter un nouveau caractère après le symbole @ comme suit:
string newString = oldString.Replace("@", "@\n");
Vous pouvez également utiliser la propriété NewLine
dans la classe Environment
(je pense que c'est Environment).
Les réponses précédentes se rapprochent, mais pour répondre à l'exigence réelle selon laquelle le symbole @
reste proche, vous souhaitez qu'il soit str.Replace("@", "@" + System.Environment.NewLine)
. Cela conserve le symbole @
et ajoute le ou les caractères de nouvelle ligne appropriés pour la plate-forme actuelle.
Ensuite, modifiez simplement les réponses précédentes en:
Console.Write(strToProcess.Replace("@", "@" + Environment.NewLine));
Si vous ne voulez pas de nouvelles lignes dans le fichier texte, ne le conservez pas.
comme d'autres l'ont dit, new line char vous donnera une nouvelle ligne dans un fichier texte dans Windows. essayez ce qui suit:
using System;
using System.IO;
static class Program
{
static void Main()
{
WriteToFile
(
@"C:\test.txt",
"fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@",
"@"
);
/*
output in test.txt in windows =
fkdfdsfdflkdkfk@
dfsdfjk72388389@
kdkfkdfkkl@
jkdjkfjd@
jjjk@
*/
}
public static void WriteToFile(string filename, string text, string newLineDelim)
{
bool equal = Environment.NewLine == "\r\n";
//Environment.NewLine == \r\n = True
Console.WriteLine("Environment.NewLine == \\r\\n = {0}", equal);
//replace newLineDelim with newLineDelim + a new line
//trim to get rid of any new lines chars at the end of the file
string filetext = text.Replace(newLineDelim, newLineDelim + Environment.NewLine).Trim();
using (StreamWriter sw = new StreamWriter(File.OpenWrite(filename)))
{
sw.Write(filetext);
}
}
}
Un simple remplacement de chaîne fera le travail. Jetez un coup d'œil à l'exemple de programme ci-dessous:
using System;
namespace NewLineThingy
{
class Program
{
static void Main(string[] args)
{
string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
str = str.Replace("@", "@" + Environment.NewLine);
Console.WriteLine(str);
Console.ReadKey();
}
}
}
D'après vos réponses à tous les autres, vous recherchez quelque chose comme cela.
string file = @"C:\file.txt";
string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
string[] lines = strToProcess.Split(new char[] { '@' }, StringSplitOptions.RemoveEmptyEntries);
using (StreamWriter writer = new StreamWriter(file))
{
foreach (string line in lines)
{
writer.WriteLine(line + "@");
}
}
string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
str = str.Replace("@", Environment.NewLine);
richTextBox1.Text = str;
string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
var result = strToProcess.Replace("@", "@ \r\n");
Console.WriteLine(result);
protected void Button1_Click(object sender, EventArgs e)
{
string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
str = str.Replace("@", "@" + "<br/>");
Response.Write(str);
}
Vous pouvez également utiliser string[] something = text.Split('@')
. Assurez-vous d’utiliser des guillemets simples pour entourer le "@" afin de le stocker en tant que type char
. Ceci stockera les caractères jusqu'à et y compris chaque "@" en tant que mots individuels dans le tableau. Vous pouvez ensuite générer chaque (element + System.Environment.NewLine
) à l'aide d'une boucle for ou l'écrire dans un fichier texte à l'aide de System.IO.File.WriteAllLines([file path + name and extension], [array name])
. Si le fichier spécifié n'existe pas à cet emplacement, il sera automatiquement créé.
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
strToProcess.Replace("@", Environment.NewLine);
Console.WriteLine(strToProcess);
}
}