字符串到数组到字符串的 C# Java 问题
本文关键字:字符串 Java 问题 数组 | 更新日期: 2023-09-27 18:31:12
我正在尝试将字符串转换为数组,然后再次转换为字符串。我正在尝试在 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# 代码中缺少一些小东西,但我不确定是什么,有人可以帮忙吗?
提前致谢
你不会在 C# 中获得输出,因为你没有输出任何内容 :-)您省略了 Java System.out.println
语句,但没有添加 C# 等效项:
Console.WriteLine(testingString);
顺便说一句:一旦你用C#代码替换了Java代码,你也可以利用.NET框架的功能(正如其他人已经提到的)。这样,您可以将程序减少到一行:
Console.WriteLine(string.Join(string.Empty, sHtml.Split(''n')));
试试这个: 尽管我建议对较大的字符串使用字符串生成器,因为它们是不可变的。
string yourString = "this,is,a,example,string";
string newString = "";
string[] array = yourString.Split(',');
foreach (string s in array)
{
newString += s;
}
Console.WriteLine(newString);
你为什么不用它来拆分字符串:
string[] List = sHtml.split("''n");
这要对字符串的数组列表做一些事情来做一些事情:
for (String s in List){
//Do something with each separate String s
}
为什么不使用 split and join?
var arr = str.Split(''n');
var newStr = string.Join("", arr);
你的 'for' 循环有 2 个错误 - 你应该保留字符 ''' 和 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;
}
}