从字符串到数组再到字符串的C Java问题

从字符串到数组再到字符串的C Java问题,java,c#,string,arrays,Java,C#,String,Arrays,我正在尝试将字符串转换为数组,然后再次转换为字符串。我试图用C语言来实现这一点,但由于我已经有一段时间没有用C语言了,所以我遇到了一些问题。我用Java创建了以下代码,效果很好: String sHtml = "test1\r\ntest2\r\ntest3\r\ntest4\r\ntes5t\r\ntest6\r\ntest7\r\ntest8\r\ntest9\r\ntest10\r\ntest11\r\ntest12\r\ntest13\r\ntes14t\r\n"; int t

我正在尝试将字符串转换为数组,然后再次转换为字符串。我试图用C语言来实现这一点,但由于我已经有一段时间没有用C语言了,所以我遇到了一些问题。我用Java创建了以下代码,效果很好:

String sHtml = "test1\r\ntest2\r\ntest3\r\ntest4\r\ntes5t\r\ntest6\r\ntest7\r\ntest8\r\ntest9\r\ntest10\r\ntest11\r\ntest12\r\ntest13\r\ntes14t\r\n";

    int temp = 0;
    List<String> emailText = new ArrayList<String>();

    for(int x = 0; x<sHtml.length();x++){
        if(sHtml.charAt(x)=='\n'){
            emailText.add(sHtml.substring(temp, x));
            temp = x;
        }
    }

    String testingString="";

    for(String words:emailText){
        //System.out.println(words);
        testingString+=words;


    }

    System.out.println(testingString);
这在Java中运行良好。以下代码是我为C编写的代码:

int temp = 0; 
List<string> emailText = new List<string>();   

for (int x = 0; x < sHtml.Length; x++) 
{ 
    if (sHtml[x].Equals("\\n")) 
    { 
        emailText.Add(sHtml.Substring(temp, x)); 
        temp = x; 
    } 
    else 
    { 
    } 
} 
string testingString = ""; 
//sHtml = string.Join("\r\n", emailText.ToArray()); 
foreach (String word in emailText) 
{ 
     testingString += word; 
}

Console.WriteLine(testingString);
java代码输出很好,但我没有从C代码得到任何输出。我有一种感觉,我错过了一些小的C代码,但我不知道什么,有人可以帮助吗


提前感谢您尝试一下:尽管我建议对较大的字符串使用字符串生成器,因为它们是不可变的

        string yourString = "this,is,a,example,string";
        string newString = "";

        string[] array = yourString.Split(',');

        foreach (string s in array)
        {
            newString += s;
        }

        Console.WriteLine(newString);

试试这个:尽管我建议对较大的字符串使用字符串生成器,因为它们是不可变的

        string yourString = "this,is,a,example,string";
        string newString = "";

        string[] array = yourString.Split(',');

        foreach (string s in array)
        {
            newString += s;
        }

        Console.WriteLine(newString);

您没有在C中获得输出,因为您没有输出任何内容:-您省略了Java System.out.println语句,但没有添加C等价物:

Console.WriteLine(testingString);
顺便说一句:一旦用C代码替换Java代码,您还可以像其他人已经提到的那样利用.NET framework的功能。这样,您可以将程序缩减为一行:

Console.WriteLine(string.Join(string.Empty, sHtml.Split('\n')));

您没有在C中获得输出,因为您没有输出任何内容:-您省略了Java System.out.println语句,但没有添加C等价物:

Console.WriteLine(testingString);
顺便说一句:一旦用C代码替换Java代码,您还可以像其他人已经提到的那样利用.NET framework的功能。这样,您可以将程序缩减为一行:

Console.WriteLine(string.Join(string.Empty, sHtml.Split('\n')));

为什么不用这个来拆分字符串:

        string[] List = sHtml.split("\\n");   
这是对字符串的arraylist执行的操作:

        for (String s in List){ 
                //Do something with each separate String s
            } 

为什么不用这个来拆分字符串:

        string[] List = sHtml.split("\\n");   
这是对字符串的arraylist执行的操作:

        for (String s in List){ 
                //Do something with each separate String s
            } 

为什么不使用拆分和联接

var arr = str.Split('\n');
var newStr = string.Join("", arr);

为什么不使用拆分和联接

var arr = str.Split('\n');
var newStr = string.Join("", arr);

“for”循环有2个错误-您应该保留字符“\n”,而Java“substring”的第二个参数与.NET“substring”的第二个参数不同,因此您需要调整:

for (int x = 0; x < sHtml.Length;x++)
{
    if (sHtml[x] == '\n')
    {
        emailText.Add(sHtml.Substring(temp, x - temp));
        temp = x;
    }
}

“for”循环有2个错误-您应该保留字符“\n”,而Java“substring”的第二个参数与.NET“substring”的第二个参数不同,因此您需要调整:

for (int x = 0; x < sHtml.Length;x++)
{
    if (sHtml[x] == '\n')
    {
        emailText.Add(sHtml.Substring(temp, x - temp));
        temp = x;
    }
}

if sHtml[x]中有两个斜杠。等于\\n我没有从C代码中获得任何输出,因为您没有打印。在末尾添加Console.WriteLineTestString为什么不改用String.split?您缺少Console.WriteLine语句,对吗?很抱歉,我在复制代码时错过了WriteLine语句。这是一个测试程序,用于确保正确返回文本。总体目标是将html代码传递到字符串sHtml中,然后在换行符处拆分行,然后正确格式化并返回到字符串。如果sHtml[x],则有两个斜杠。等于\\n我没有从C代码获得任何输出,因为您没有打印。在末尾添加Console.WriteLineTestString为什么不改用String.split?您缺少Console.WriteLine语句,对吗?很抱歉,我在复制代码时错过了WriteLine语句。这是一个测试程序,用于确保正确返回文本。总体目标是将html代码传递到字符串sHtml中,然后在换行符处拆分行,然后正确格式化并返回字符串;foreach应该替换为var newString=String.Join,array;最后一行给了我一个错误。但是Console.WriteLinestring.Joinstring.Empty,sHtml.splitnewstring[]{\\n},StringSplitOptions.None;干得好me@deltonio2,你说得对,我的大脑自己的语法检查器还没有完成:-最后一行给了我一个错误。但是Console.WriteLinestring.Joinstring.Empty,sHtml.splitnewstring[]{\\n},StringSplitOptions.None;干得好me@deltonio2,你说得对,我大脑自己的语法检查器还不完整:-