C#:删除重复字符

时间:2016-04-22 00:35:12

标签: c# string parsing duplicates

在C#应用程序中,我得到Desktop文件夹:

if (!function_exists('hide_setting_checkout_for_shop_manager')){
    function hide_setting_checkout_for_shop_manager() {

        $user = wp_get_current_user();
        //check if user is shop_manager
        if ( isset( $user->roles[0] ) && $user->roles[0] == 'shop_manager' ) {
            echo '<style> .woocommerce_page_wc-settings  form .woo-nav-tab-wrapper a[href="'.admin_url('admin.php?page=wc-settings&tab=checkout').'"]{ display: none; } </style>';
        }

    }
}
add_action('admin_head', 'hide_setting_checkout_for_shop_manager');

这给出了这个字符串:string path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 如你所见,有两个斜线,这是有问题的。有没有一种简单的方法可以在每次遇到它时删除斜杠?

提前谢谢。

1 个答案:

答案 0 :(得分:4)

您知道,“\\”实际上是一个字符 - 反斜杠是一个转义符(它用于\ r或\ n之类的东西)。因为它是一个转义字符,要获得实际反斜杠的字符串表示,你必须转义它,导致双反斜杠,“\\”。

TLDR:字符串中的“\\”实际上代表一个反斜杠。

如果要验证这一点,请尝试打印字符串“\\”。

通常,要删除重复的字符,可以使用.Replace函数:

String curl = "curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{\"field1\": \"value1\", \"field2\": \"value2\"}' 'http://localhost:8080/service'";
ProcessBuilder builder = new ProcessBuilder("/bin/bash", "-c", curl);
builder.redirectErrorStream(true);
Process p = builder.start();
StringBuilder sb = new StringBuilder();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
int linenum = 0;
while (true) {
    linenum++;
    line = r.readLine();
    if (line == null) {
        break;
    }
    sb.append(line);
}
System.out.println(sb);