Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字符串传递到int到子字符串_C# - Fatal编程技术网

C# 将字符串传递到int到子字符串

C# 将字符串传递到int到子字符串,c#,C#,我目前获得的用户编号如下: if (checkBox1.Checked) { rchars = numericUpDown1.Value.ToString(); } else { rchars = "3"; } 弦乐室;是一个全局变量 所以,我试图从文件名中删除rchars。 例如,文件名的前三个字符: int num = In

我目前获得的用户编号如下:

        if (checkBox1.Checked)
        {
            rchars = numericUpDown1.Value.ToString();
        }
        else
        {
            rchars = "3";
        }
弦乐室;是一个全局变量

所以,我试图从文件名中删除rchars。 例如,文件名的前三个字符:

            int num = Int32.Parse(rchars);
            foreach (FileInfo name in fpaths.GetFiles("*.mp3")
            {
                string snub = name.Name.Substring(num);
                MessageBox.Show(snub);
                System.IO.File.Move(blah + name.Name, newblah + snub);
            }
我的问题是如何让“num”在子字符串中工作?因为我不能让它成为一个值。因为我想从数字上往下传。添加并使“num”成为一个值,以便我可以从文件名中删除该值


谢谢。

NumericUpDown的值属性是十进制的-这可能就是您遇到问题的原因。在IF块中,我考虑将DigialUpDip对象的Value属性转换为True部分中的整数,并在其另一部分使用整数值3。之后,我将避免再次解析,并按原样将其交给子字符串。

NumericUpDown的Value属性是Decimal-这可能就是您遇到问题的原因。在IF块中,我考虑将DigialUpDip对象的Value属性转换为True部分中的整数,并在其另一部分使用整数值3。之后,我将避免再次解析,并按原样将其交给子字符串。

您说要从
name
中删除所有出现的
rchars
,那么为什么要使用
Substring
?如果要从
name
中删除
字符串rchars
,则只需将其保留为字符串并使用
字符串。替换

string snub = name.Name.Replace( rchars, String.Empty );
另外,
NumericUpDown
Value
属性是一个
decimal
,而不是
int
,您说要从
名称
中删除所有出现的
rchars
,那么为什么要使用
子字符串
?如果要从
name
中删除
字符串rchars
,则只需将其保留为字符串并使用
字符串。替换

string snub = name.Name.Replace( rchars, String.Empty );

另外,
NumericUpDown
Value
属性是一个
decimal
,而不是
int

您是否希望用其他内容替换文件名中的值“3”或删除它?像这样:

原始文件:

string fiename = "myfile3.mp3";
删除/替换所选编号(在本例中为3):


应该以文件名“myfile.mp3”结尾。

您是否希望用其他文件名替换文件名中的值“3”或删除它?像这样:

原始文件:

string fiename = "myfile3.mp3";
删除/替换所选编号(在本例中为3):


应该以文件名“myfile.mp3”结尾

我不太明白你在这里的意思?如果num是int,则它将用作substring的参数。您正在将其解析为int值num,因此它应该作为子字符串调用的一部分工作…不是说在不检查其是否超过长度的情况下将一些随机数解析为子字符串是一个好主意…暴露的问题对我来说不是很清楚。。。它导致了几种解释。如果需要删除字符串的一部分,应该使用函数remove或Replace,或者只使用正则表达式。字符串snub=name.name.Replace(rchars,“”);这将替换name.name字符串中所有rchars的occourrence,并将结果放入sbub变量中。但我想这不是你要找的,这听起来对我来说没用。问题中的代码对我来说很好,可以删除文件夹中所有文件名的前n个字符,然后将其移动到另一个文件夹。由于NumericUpDown控件只能接受数值(它不允许字符串),因此我尝试在不使用Up或Down的情况下输入12的值,但仍然有效。如果上述代码不适用于您,请告知我们?或者您希望您的代码除了删除前n个字符之外还执行其他操作吗?我无法确切理解您在这里的意思?如果num是int,则它将用作substring的参数。您正在将其解析为int值num,因此它应该作为子字符串调用的一部分工作…不是说在不检查其是否超过长度的情况下将一些随机数解析为子字符串是一个好主意…暴露的问题对我来说不是很清楚。。。它导致了几种解释。如果需要删除字符串的一部分,应该使用函数remove或Replace,或者只使用正则表达式。字符串snub=name.name.Replace(rchars,“”);这将替换name.name字符串中所有rchars的occourrence,并将结果放入sbub变量中。但我想这不是你要找的,这听起来对我来说没用。问题中的代码对我来说很好,可以删除文件夹中所有文件名的前n个字符,然后将其移动到另一个文件夹。由于NumericUpDown控件只能接受数值(它不允许字符串),因此我尝试在不使用Up或Down的情况下输入12的值,但仍然有效。如果上述代码不适用于您,请告知我们?或者您希望您的代码除了删除前n个字符之外还做其他事情吗?因为
rchars
是一个类似
“3”
的值,意思是“从文件名中删除前3个字母”@Jimmy:那么问题出在哪里?它应该会起作用。您只需将
rchars
声明为
int
,因为这是
String.Substring
所期望的。没有理由强迫这个东西变成一个字符串然后再回来。另外,(从技术上讲)C#中没有全局变量。实际上,我也不理解这个问题,但OP确实说了“例如,[删除]文件名的前三个字符”,所以我并不认为它是要替换的。@Jimmy:是的,在你发表评论后我发现了这一点。我真的以为你是OP,哎呀……因为
rchars
是一个类似
“3”
的值,意思是“从文件名中删除前3个字母”@Jimmy:那有什么问题?它应该会起作用。您只需将
rchars
声明为
int
,因为这是
String.Substring
所期望的。没有理由强迫这个东西变成一个字符串然后