所以我有一个像这样的字符串:
"Some text here?Some number here"
Run Code Online (Sandbox Code Playgroud)
我需要拆分那些,我正在使用String.split("\\?"),但如果我有这样的字符串:
"This is a string with, comma?1234567"
Run Code Online (Sandbox Code Playgroud)
我也把它分成了逗号(,).如果我有这个字符串:
"That´s a problem here?123456"
Run Code Online (Sandbox Code Playgroud)
它也分裂了´,那我怎么解决这个问题呢?
class Base
{}
class Sub : Base
{}
void AddNewBase(Base t, LinkedList<Base> list){ ... }
...
{
Sub asub = new Sub();
LinkedList<Sub> asubList = new LinkedList<Sub>();
AddNewBase(asub,asubList) // doesn't work
}
Run Code Online (Sandbox Code Playgroud)
基本上,我有一个自定义插入函数,它接受一个新项目和一个列表来放入它,它做了一些"排序"的东西,找到一个好的地方把它放在列表中.
问题是,我想基于'Base'中的属性来做这个,所以最好只有一个函数可以为所有子类型列表执行此操作.
我想我想要的是:
static void AddNewBase<T>(T t, LinkedList<T> list){ ... }
Run Code Online (Sandbox Code Playgroud)
但有一些澄清T的方式:'其中T是Base的子类'
有没有办法修改JQuery每个()访问页面上的元素的顺序?
即我在页面上有4个元素,我希望元素3先来,然后是2,然后是4,然后是1.
谢谢
理查德
有没有一种优雅的方法可以将矩阵的对角线更改为新的值列表,相当于Band with SparseArray?
说我有以下矩阵(见下文)
(mat = Array[Subscript[a, ##] &, {4, 4}]) // MatrixForm
Run Code Online (Sandbox Code Playgroud)
并且我想将主对角线改为以下以获得"新垫子"(见下文)
newMainDiagList = Flatten@Array[Subscript[new, ##] &, {1, 4}]
Run Code Online (Sandbox Code Playgroud)
我知道使用ReplacePart将主对角线更改为给定值很容易.例如:
ReplacePart[mat, {i_, i_} -> 0]
Run Code Online (Sandbox Code Playgroud)
我也不想局限于主对角线(与Band不受SparseArray限制的方式相同)
(我现在使用的方法如下!)
(Normal@SparseArray[Band[{1, 1}] -> newMainDiagList] +
ReplacePart[mat, {i_, i_} -> 0]) // MatrixForm
Run Code Online (Sandbox Code Playgroud)
(期望输出是'新垫')

Visual C++调试运行时库具有所谓的分配挂钩.以这种方式工作:您定义一个回调并调用_CrtSetAllocHook()以设置该回调.现在,每次完成内存分配/释放/重新分配时,CRT会调用该回调并传递一些参数.
我成功地使用了一个分配钩子来找到一个可重现的内存泄漏 - 基本上CRT报告在程序终止时有一个分配编号为N(在每个程序运行时N都相同)的不一致块,所以我在我的钩子中编写了以下内容:
int MyAllocHook( int allocType, void* userData, size_t size, int blockType,
long requestNumber, const unsigned char* filename, int lineNumber)
{
if( requestNumber == TheNumberReported ) {
Sleep( 0 );// a line to put breakpoint on
}
return TRUE;
}
Run Code Online (Sandbox Code Playgroud)
因为每次我只能在if语句中放入一个断点并等待它被击中然后检查调用堆栈,就会报告泄漏的分配编号非常相同.
使用分配挂钩可以做些什么其他有用的事情?
我有这个功能:
function block_scroll(key){
if (key) {
$(window).bind("scroll", function(){
$('html, body').animate({scrollTop:0}, 'fast');
});
} else {
$(window).unbind();
}
}
Run Code Online (Sandbox Code Playgroud)
第一部分按原样运行,但是当我稍后调用block_scroll(false)时 - 它仍然阻塞.笏呢?
重新编辑 所以我试过......
$(window).unbind("scroll");
Run Code Online (Sandbox Code Playgroud)
......有些困惑.起初它没有用 - 然后它起作用了.
现在我认为它失败了因为我在滚动的时候调用了block_scroll(false).我现在已经多次测试了这个.是的,如果我在脚本运行时没有做任何事情并且调用了block_scroll(false) - 它确实有效.但是,如果我在调用它时滚动它就不会.
这实际上是一个基于麻将的问题,但基于Romme甚至基于扑克的背景也很容易理解.
在Mahjong中,14个瓷砖(瓷砖就像扑克中的卡片)被安排成4套和一对.街道("123")总是使用3个瓷砖,而不是更多而不是更少.一组相同类型("111")也包含3个瓷砖.这导致3*4 + 2 = 14个瓦片的总和.
有一些例外,如Kan或十三个孤儿,这里没有相关性.颜色和值范围(1-9)对于算法也不重要.
我正在尝试确定手是否可以按上述方式排列.出于某些原因,它不仅应该能够处理14个而且可以处理任意数量的瓷砖.(下一步是找到需要交换多少个牌才能完成一手牌.)
例子:
11122233344455 - 足够容易,4套和一对.
12345555678999- 123,456,789,555,99
11223378888999- 123,123,789,888,99
11223344556789- 不是有效的手
我目前尚未实现的想法是这样的:对于每个瓷砖,尝试制作a)街道b)一组c)一对.如果没有工作(或者将有> 1对),请返回上一次迭代并尝试下一个选项,或者,如果这是最高级别,则失败.否则,从剩余的切片列表中删除使用过的切片,然后继续下一次迭代.
我相信这种方法有效并且速度也相当快(性能是一个"不错的奖励"),但我对你的看法很感兴趣.你能想到其他解决方案吗?这个或类似的东西是否已存在?
(不是作业,我正在学习麻将.)
在Python中查找另一个字符串中的字符串的优雅方法是什么,但仅当子字符串在整个单词内,而不是单词的一部分时?
也许一个例子将证明我的意思:
string1 = "ADDLESHAW GODDARD"
string2 = "ADDLESHAW GODDARD LLP"
assert string_found(string1, string2) # this is True
string1 = "ADVANCE"
string2 = "ADVANCED BUSINESS EQUIPMENT LTD"
assert not string_found(string1, string2) # this should be False
Run Code Online (Sandbox Code Playgroud)
我怎样才能最好地编写一个名为string_found的函数来完成我需要的工作呢?我想也许我可以用这样的东西来捏造它:
def string_found(string1, string2):
if string2.find(string1 + " "):
return True
return False
Run Code Online (Sandbox Code Playgroud)
但这并不是很优雅,如果它在string2的末尾也不会匹配string1.也许我需要正则表达式?(argh regex fear)
所以我有一个函数总是返回范围<0; 99>(即0,1,... 99 - 整数)的数字.
将这些数字正确映射到范围<-1.0; 1.0>的最佳方法是什么?
0当然是-1.0而99则是1.0.如何计算之间的数字?
如何让我的winforms应用程序在Windows 7的任务栏图标中显示其进度条?
例如:带下载的chrome.
谢谢!!
迭戈