如何将函数输入参数转换为正确的类型?
我想返回一个字符串,其中包含传递给它的部分URL.
这有效,但它使用硬编码字符串:
function CleanUrl($input)
{
$x = "http://google.com".Replace("http://", "")
return $x
}
$SiteName = CleanUrl($HostHeader)
echo $SiteName
Run Code Online (Sandbox Code Playgroud)
这失败了:
function CleanUrl($input)
{
$x = $input.Replace("http://", "")
return $x
}
Method invocation failed because [System.Array+SZArrayEnumerator] doesn't contain a method named 'Replace'.
At M:\PowerShell\test.ps1:13 char:21
+ $x = $input.Replace( <<<< "http://", "")
Run Code Online (Sandbox Code Playgroud) 我今天刚遇到这个问题,并想知道是否有人知道为什么这个测试可能会失败(取决于文化).目的是检查测试文本是否包含彼此相邻的两个空格,这是根据string.IndexOf(即使我告诉字符串将所有出现的两个空格替换为彼此).经过一些测试后,似乎\xAD在某种程度上导致了这个问题.
public class ReplaceIndexOfSymmetryTest
{
[Test]
public void IndexOfShouldNotFindReplacedString()
{
string testText = "\x61\x20\xAD\x20\x62";
const string TWO_SPACES = " ";
const string ONE_SPACE = " ";
string result = testText.Replace(TWO_SPACES, ONE_SPACE);
Assert.IsTrue(result.IndexOf(TWO_SPACES) < 0);
}
}
Run Code Online (Sandbox Code Playgroud) String delimiter = "\\*\\*";
String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>";
Map<String, String> mp = new HashMap<String, String>();
mp.put("USERNAME", "User A");
mp.put("PASSWORD", "B");
for (Entry<String, String> entry : mp.entrySet()) {
html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());
}
Run Code Online (Sandbox Code Playgroud)
这应该通常取代这两个字符串,但事实并非如此.有没有人有想法?
我有两个文件:
f1:
111 aaa 444
222 bbb 555
333 ccc 666
f2:
111 333 000 444
222 444 111 555
333 555 555 666
Run Code Online (Sandbox Code Playgroud)
如何使用awk替换"f1"中的第二列,使用"f2"中的第三列?
有人可以在MySql中解释REPLACE,INSERT和UPDATE之间的区别吗?
我正在尝试将文件加载到MySQL数据库,主键auto_incremented,如果我找到任何重复的行,我希望更新数据.但是,REPLACE关键字仅适用于主键,它是自动生成的,所以我卡住了.
如何能够拥有一个ID为auto_increments的表,同时能够使用LOAD DATA INFILE从文件中插入/更新数据?
这是表格
CREATE TABLE `oxygen_domain`.`TEST` (
`TEST_ID` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(255) NOT NULL,
`VALUE` varchar(255) DEFAULT NULL,
PRIMARY KEY (`TEST_ID`,`NAME`,`VALUE`)
)
Run Code Online (Sandbox Code Playgroud)
这是命令
LOAD DATA LOCAL INFILE 'C:/testData.txt'
REPLACE
INTO TABLE TEST
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(NAME, VALUE);
Run Code Online (Sandbox Code Playgroud)
这是样本数据
ignored name, ignored value
name1,value1
name2,value2
name3,value3
Run Code Online (Sandbox Code Playgroud)
用上述数据多次运行上述命令后所需的结束结果是
|TEST_ID |NAME |VALUE|
1, 'name1', 'value1'
2, 'name2', 'value2'
3, 'name3', 'value3'
Run Code Online (Sandbox Code Playgroud) 我正在比较字符串并且必须替换JS中的变音符号,但似乎JS无法识别字符串中的变音符号.文本来自数据库,在浏览器中,变音符号显示正常.
function replaceUmlauts(string)
{
value = string.toLowerCase();
value = value.replace(/ä/g, 'ae');
value = value.replace(/ö/g, 'oe');
value = value.replace(/ü/g, 'ue');
return value;
}
Run Code Online (Sandbox Code Playgroud)
作为我试过的搜索模式:
ä"," ö"," ü"(完全绝望;-))可以肯定的是,我尝试使用indexOf替换函数不是问题:
console.log(value.indexOf('ä'));
Run Code Online (Sandbox Code Playgroud)
但所有模式的输出是: -1
所以我猜这是编码的某种问题,但正如我在页面上所说的,变音符号看起来很好.
有任何想法吗?这看起来很简单......
编辑:即使我找到了答案,问题也没有真正解决"在根"(编码).这是我的页面编码:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
Run Code Online (Sandbox Code Playgroud)
该数据库具有:utf8_general_ci
对我来说似乎完全没问题.
在Notepad ++中,当你执行搜索 - >查找时,它会根据下面的行为自动填充"查找内容:"字段(根据在线文档 - 强调我的)...
在"查找内容"字段中,键入要查找的文本.当打开"查找"对话框时,会自动填充当前所选文本或插入符号下的单词或最后搜索的模式.
有没有办法更改或禁用此行为?我希望它变得空洞.我不介意最后搜索到的模式是一个合理的默认模式,但是当它通过自动选择光标旁边的单词来不断更改搜索值时,它会让我感到疯狂.
我已经做了很多挖掘(设置,帮助,网络搜索等),并且无法找到解决此问题的方法.
我想知道的是,是否可以替换字符串中的多个字符(例如,&,|和$字符),而不必多次使用.Replace()?目前我正在使用它
return inputData.Replace('$', ' ').Replace('|', ' ').Replace('&', ' ');
Run Code Online (Sandbox Code Playgroud)
但这太可怕了,我想知道是否有类似的小而有效的替代方案.
编辑:谢谢大家的答案,不幸的是,我没有15个声誉需要赞成人
我正在做以下SQL教程:http://sql.learncodethehardway.org/book/ex11.html
在本练习中,作者在第二段中说:
在这种情况下,我想用另一个人替换我的记录但保留唯一ID.问题是我必须在事务中执行DELETE/INSERT以使其成为原子,或者我需要执行完全更新.
任何人都可以向我解释一下UPDATE的问题是什么,当我们选择REPLACE而不是UPDATE时?
UPDATE代码:
UPDATE person SET first_name = "Frank", last_name = "Smith", age = 100
WHERE id = 0;
Run Code Online (Sandbox Code Playgroud)
这是REPLACE代码:
REPLACE INTO person (id, first_name, last_name, age)
VALUES (0, 'Frank', 'Smith', 100);
Run Code Online (Sandbox Code Playgroud)
编辑:我想我有另一个问题是你为什么要做一个DELETE/INSERT,而不仅仅是引用部分讨论的UPDATE?