在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);
如你所见,有两个斜线,这是有问题的。有没有一种简单的方法可以在每次遇到它时删除斜杠?
提前谢谢。
答案 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);