我知道 string encryptedPassword = RunPowerShellCommand("\""
+ password
+ "\" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString", null);
public static string RunPowerShellCommand(string command,
Dictionary<string, object> parameters)
{
using (PowerShell powerShellInstance = PowerShell.Create())
{
// Set up the running of the script
powerShellInstance.AddScript(command);
// Add the parameters
if (parameters != null)
{
foreach (var parameter in parameters)
{
powerShellInstance.AddParameter(parameter.Key, parameter.Value);
}
}
// Run the command
Collection<PSObject> psOutput = powerShellInstance.Invoke();
StringBuilder stringBuilder = new StringBuilder();
if (powerShellInstance.Streams.Error.Count > 0)
{
foreach (var errorMessage in powerShellInstance.Streams.Error)
{
if (errorMessage != null)
{
throw new InvalidOperationException(errorMessage.ToString());
}
}
}
foreach (var outputLine in psOutput)
{
if (outputLine != null)
{
stringBuilder.Append(outputLine);
}
}
return stringBuilder.ToString();
}
}
会对一个字符串与另一个字符串的相关性返回负面或正面结果,但为什么会出现:
compareTo
是真的
public class Test {
public static void main(String[] args) {
String y = "ab2";
if(y.compareTo("ac3") == -1) {
System.out.println("Test");
}
}
}
也是如此?
答案 0 :(得分:10)
Comparable.compareTo(o)
的一般合同是返回
在您的示例中"ab2".compareTo("ac3") == -1
和"ab2".compareTo("ab3") == -1
仅表示 "ab2"
低于"ac3"
和"ab3"
。仅使用这些示例,您无法就"ac3"
和"ab3"
做出任何结论。
此结果是预期的,因为b
位于字母表中c
之前("ab2" < "ac3"
}而2
位于3
之前("ab2" < "ab3"
}):Java对字符串lexicographically进行排序。
答案 1 :(得分:1)
compareTo
(调用该方法的那个)位于第二个String
(方法的参数)之前,则String
的 String
返回-1按字典顺序排列。 “ab2”出现在“ab3”之前(因为前两个字符相等,2出现在3之前),也出现在“ac3”之前(因为第一个字符相等而b出现在c之前),所以两个比较都返回-1。 / p>
答案 2 :(得分:1)
compareTo()比较两个字符串的字母顺序。你们两个测试都有一个按字母顺序排序的字符串&#34;之前&#34;你比较它的字符串。换句话说:
顺便说一下,你应该使用&#34;&lt; 0&#34;比&#34; == -1&#34;在你的if语句中,因为compareTo
规范说该函数返回一个负数,而不是具体的&#34; -1&#34;