任何人都知道怎么做?
编辑:我正在尝试> =.我纠正了标题.
我有一个调用Web服务的Cocoa应用程序.当我解析来自Web服务的响应时,我得到一个\n作为XML的每个元素的NSXMLParser的foundCharacters委托中的最后一个字符.
当我尝试执行以下操作时:
if (![string isEqualToString:@"\n"])
Run Code Online (Sandbox Code Playgroud)
检查将始终无法捕获换行符.有人知道串联检查换行的好方法吗?
我还发现奇怪的是每个元素在每个值的末尾都有一个换行符,即使我在Web服务的输出中没有看到任何证据.
对于应该非常容易做到的事情来说,这是一个非常棘手的问题.
给定两个带*通配符的字符串,我想知道是否可以创建一个匹配两者的字符串.
例如,这两个是重叠的简单情况:
但所有这些都是:
是否有一个算法用于执行此操作?或者可能是Windows中的实用程序功能或者我可以调用或复制的库?
我不小心跳进了这个,并且不知道为什么会这样
string sample = "Hello World";
if (sample.Contains(string.Empty))
{
Console.WriteLine("This contains an empty part ? at position " + sample.IndexOf(string.Empty));
Console.WriteLine(sample.LastIndexOf(string.Empty));
Console.WriteLine(sample.Length);
}
Run Code Online (Sandbox Code Playgroud)
产量
This contains an empty part ? at position 0
10
11
我很满意最后一部分,但我不知道为什么这被评估为真.甚至Indexof并且LastIndexOf具有单独的值.
任何人都可以帮我解决这个问题的原因吗?
编辑
我相信这与我的问题有点相关,也会对那些偶然发现这个问题的人有所帮助.
看到这个SO链接:为什么"abcd".StartsWith("")返回true?
我应该如何比较两个CharSequences的两个字符?
这是我的两个CharSequence:
CharSequence name1 = fname.getText();
CharSequence name2 = sname.getText();
Run Code Online (Sandbox Code Playgroud)
如果我尝试比较这样:
if(name1[i] == name2[j])
Run Code Online (Sandbox Code Playgroud)
..给了我错误.
我想将javascript中的ISO 8601日期作为字符串进行比较,而不是为每个字符串创建Date对象并比较对象.
var date_array = ['2012-10-01','2012-11-27','2012-12-23'];
console.log(date_array[0] < date_array[1]) // gives true
console.log(date_array[1] > date_array[2]) // gives false
Run Code Online (Sandbox Code Playgroud)
我这样做的原因是我认为字符串比较应该比为每个日期字符串制作对象和比较对象更快.
这些比较似乎在某些浏览器中按预期工作.我可以期望这种按字母 顺序排列的词典 字符串比较适用于所有浏览器吗?这种日期比较方法实际上比使用Date对象更快吗?
我想比较2个网址.什么是最好的方法呢?
条件:1)它应该排除http方案.2)'foo.com/a/b'和'foo.com/a'应该匹配.
java.lang.String.equalsIgnoreCase由于不正确使用语言环境,有很多很多例子可以解释为什么以及何时会失败.
但我没有找到任何正确方法的例子.与java.lang.String.toUpperCase没有带语言环境参数的版本不同.将两个字符串转换为大写或小写似乎都是浪费.特别是当您正在进行大量比较的应用程序时.
在考虑区域设置和性能的情况下,进行忽略大小写字符串比较的正确方法是什么?
在cmake中,如何检查字符串标记是否包含在另一个字符串中?
在我的例子中,我想知道编译器的名称是否包含字符串"Clang"(例如"clang","AppleClang",...).到目前为止我能做的就是:
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
...
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
...
Run Code Online (Sandbox Code Playgroud)
我想要一种更灵活的方法,比如检查子串的存在.
这是我在文档中可以找到的:
if(MATCHES regex)如果给定的字符串或变量的值与给定的正则表达式匹配,则为True.
if(LESS)如果给定字符串或变量的值是有效数字且小于右边的值,则为True.
if(GREATER)如果给定的字符串或变量的值是有效数字且大于右侧的值,则为True.
if(EQUAL)如果给定的字符串或变量的值是有效数字且等于右边的值,则为真.
if(STRLESS)如果给定字符串或变量的值在字典上小于右侧的字符串或变量,则为True.
if(STRGREATER)如果给定字符串或变量的值在词典上大于右侧的字符串或变量,则为True.
if(STREQUAL)如果给定字符串或变量的值在字典上等于右侧的字符串或变量,则为True.
以下是控制台应用程序的代码片段 -
class MyClass
{
public int GetDay(string data22)
{
int returnValue = 0;
if (string.Compare(data22,"THURSDAY") == 0) // true
{
returnValue = (int)DayOfWeek.Thursday;
}
if (data22 == "THURSDAY") //false
{
returnValue = (int)DayOfWeek.Thursday;
}
if (string.Equals(data22, "THURSDAY"))//false
{
returnValue = (int)DayOfWeek.Thursday;
}
return returnValue;
}
}
class Program
{
static void Main(string[] args)
{
string ExecutionDay = "?THURSDAY";
MyClass obj1 = new MyClass();
int MyDays = obj1.GetDay(ExecutionDay);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是 - 为什么第一次比较(string.compare)有效,而另外两种比较方法在这个特殊情况下不起作用?
string ×5
c# ×3
.net ×2
java ×2
algorithm ×1
android ×1
cmake ×1
cocoa ×1
contains ×1
javascript ×1
linq-to-sql ×1
localization ×1
nsstring ×1
objective-c ×1