删除字符串的第一个字符并附加到字符串的结尾

时间:2016-01-18 08:22:58

标签: c#

我需要获取此字符串的第一个字符:

    try{
        // open file then try to close
        // try to parse integer
        // another kind of exception throwing funcitons
    }catch (Exception e){
        return onErrorInt;
    }

并在数字后加上';' ,如:4711; X。

我已经尝试过:

    try{
        // open file then try to close
        // try to parse integer
        // another kind of exception throwing funcitons
    }catch (NumberFormatException e){
        return // something;
    } catch (IOException e){
        // return same thing in the exception above
    }

然后我明白了,但我能做得更好还是这是唯一可行的方法?

3 个答案:

答案 0 :(得分:18)

var items = s.Split ("-");
string x = String.Format ("{0};{1}", items[1], items[0]);

这最多使得它更具可读性和微观优化,只需要拆分一次。

编辑:

正如一些评论所指出的,如果您使用的是C#6,则可以使用String Interpolation来格式化字符串。它做的完全相同,只是看起来好一点。

var items = s.Split ("-");
string x = $"{items[1]};{items[0])}";

答案 1 :(得分:4)

不确定您正在寻找小型string操作的性能,您的代码编写得很好并满足您的需求。

您可能会考虑的一个小问题是删除对输入字符串执行的其他拆分。

var subs = s.Split ("-");
String.Format ("{0};{1}", subs [1], subs [0]);

如果您正在寻找单线程(疯狂的程序员),这可能有所帮助。

string.Join(";", s.Split('-').Reverse())

答案 2 :(得分:2)

String.Substring:从此实例中检索子字符串。子字符串从指定的字符位置开始,并具有指定的长度。

string sub = input.Substring(0, 1);
string restStr = input.Substring(2, input.length-2);
// string restStr = input.Substring(2); Can also use this instead of above line
string madeStr = restStr + ";" + sub;

您调用Substring方法从字符串中提取子字符串,该字符串从指定的字符位置开始并在字符串结尾之前结束。起始字符位置是从零开始的;换句话说,字符串中的第一个字符位于索引0,而不是索引1.要提取从指定字符位置开始并继续到字符串末尾的子字符串,请调用Substring方法。