如何在C#中只用一个空格替换字符串中的多个空格?
例:
1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
将会:
1 2 3 4 5
Run Code Online (Sandbox Code Playgroud) 我正在调用REST API并且正在接收XML响应.它返回一个工作区名称列表,我正在编写一个快速IsExistingWorkspace()
方法.由于所有工作空间都包含没有空格的连续字符,因此我假设最简单的方法是查找列表中的特定工作空间是否删除所有空格(包括换行符)并执行此操作(XML是从Web接收的字符串请求):
XML.Contains("<name>" + workspaceName + "</name>");
Run Code Online (Sandbox Code Playgroud)
我知道它区分大小写,我依靠它.我只需要一种方法来有效地删除字符串中的所有空格.我知道RegEx和LINQ可以做到,但我对其他想法持开放态度.我大多只关心速度.
假设我有一个字符串,例如:
"Hello how are you doing?"
Run Code Online (Sandbox Code Playgroud)
我想要一个将多个空格转换为一个空格的函数.
所以我会得到:
"Hello how are you doing?"
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用正则表达式或电话
string s = "Hello how are you doing?".replace(" "," ");
Run Code Online (Sandbox Code Playgroud)
但我必须多次调用它以确保所有连续的空格只用一个替换.
是否已有内置方法?
x
使用合法运算符检查数字是否为非零值!
.
例如:isNonZero(3) = 1
,isNonZero(0) = 0
法律行动: ~
&
^
|
+
<<
>>
if
,else
,for
等不能使用.int
4个字节.int isNonZero(int x) {
return ???;
}
Run Code Online (Sandbox Code Playgroud)
使用!
它将是微不足道的,但我们如何不使用!
?
我有这个字符串
"go for goa"
Run Code Online (Sandbox Code Playgroud)
并且输出应该是
"go for goa"
Run Code Online (Sandbox Code Playgroud)
我想删除多余的空格。这意味着两个或多个连续空格应替换为一个空格。我想使用就地算法来做到这一点。
以下是我尝试过但不起作用的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* Function to remove spaces in an string array */
char *removeSpaces(char *str) {
int ip_ind = 1;
/* In place removal of duplicate spaces*/
while(*(str + ip_ind)) {
if ((*(str + ip_ind) == *(str + ip_ind - 1)) && (*(str + ip_ind)==' ')) {
*(str_ip_ind-1)= *(str + ip_ind);
}
ip_ind++;
}
/* After above step add end of string*/
*(str + ip_ind) = …
Run Code Online (Sandbox Code Playgroud)