有没有办法利用Enumerable.Zip,其中IEnumerable
使用了两个s 中的所有元素?如果IEnumerable
s 有不同的计数,则默认剩余合并为default(T)
。
例子
var first = new int[] { 1, 2, 3, 4, 5 };
var second = new string[] { "a", "b", "c" };
var zipped = first.Zip(second, (f, s) => new { f, s });
// actual: [ {1, "a"}, {2, "b"}, {3, "c"} ]
// expecting: [ {1, "a"}, {2, "b"}, {3, "c"}, {4, null}, {5, null} ]
var first = new int[] { 1, 2, 3 }; …
Run Code Online (Sandbox Code Playgroud) C# 是否有带有参数的TrimEnd
orTrimStart
方法string
?不,即使我们string.ToCharArray()
像这样使用TrimEnd(str.ToCharArray());
它也表现不佳。
例如:
string sam = "Sammy";
sam = TrimEndOrStart(sam, "my", true);
Run Code Online (Sandbox Code Playgroud)
sam
应该等于"Sam"
我需要用一个双引号替换所有连续的单引号:
// ''Hello World'' -> "Hello World"
// '''It's me.'''' -> "It's me."
// ''''Oh'' ''No''' -> "Oh" "No"
// ''This'''Is''Fine'' -> "This"Is"Fine"
Run Code Online (Sandbox Code Playgroud)
我觉得这可以用正则表达式解决,但我不知道从哪里开始。
这是我目前的解决方案:
private fix(String line) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < line.length(); ++i) {
builder.append("'");
}
while (builder.length() > 1) {
line = line.replace(builder.toString(), "\"");
builder.deleteCharAt(0);
}
return line;
}
Run Code Online (Sandbox Code Playgroud) 我需要在字符串中的所有标点符号之间添加空格.
\\ "Hello: World." -> "Hello : World ."
\\ "It's 9:00?" -> "It ' s 9 : 00 ?"
\\ "1.B,3.D!" -> "1 . B , 3 . D !"
Run Code Online (Sandbox Code Playgroud)
我认为正则表达式是要走的路,匹配所有非标点符号[a-ZA-Z\\d]+
,在之前和/或之后添加空格,然后提取匹配所有标点符号的余数[^a-ZA-Z\\d]+
.
但我不知道如何(递归?)调用这个正则表达式.看一下第一个例子,正则表达式只匹配"Hello"
.我想通过不断删除和附加匹配的正则表达式的第一个实例来构建一个新字符串,而原始字符串不为空.
private String addSpacesBeforePunctuation(String s) {
StringBuilder builder = new StringBuilder();
final String nonpunctuation = "[a-zA-Z\\d]+";
final String punctuation = "[^a-zA-Z\\d]+";
String found;
while (!s.isEmpty()) {
// regex stuff goes here
found = ???; // found group from respective regex goes here …
Run Code Online (Sandbox Code Playgroud) 当Google Analytics从http页面发送数据时,它会以http请求开头,如下所示:
http://www.google-analytics.com/collect?payload-data-goes-here
但由于HTTP严格传输安全性(HSTS),这会导致307状态代码(内部重定向),并且此重定向是完全相同URL的https版本.
如何强制Google Analytics仅从http网页发送一个https请求?
我目前正在 Python 中使用 scipy.optimize 包的 curve_fit 函数,并且知道如果您取从curve_fit 获得的协方差矩阵的对角线项的平方根,您将得到curve_fit 参数的标准偏差计算。我不确定的是,这个标准偏差究竟意味着什么。据我所知,这是使用黑塞矩阵的近似值,但确切的计算是什么?高斯钟形曲线上的标准偏差告诉您曲线特定范围内的面积百分比,所以我假设对于 curve_fit 它告诉您某些参数值之间有多少数据点,但显然这是不对的......
如果这应该是曲线拟合的基本知识,我很抱歉,但我真的无法弄清楚标准偏差的作用,它们表示参数上的错误,但这些参数被计算为最可能的函数拟合,它不像有一个完整的最佳参数集合,我们得到该集合的平均值,因此也有一个标准偏差。只有一个最佳值,有什么可比较的呢?我想我的问题真的归结为:我如何手动准确地计算这些标准偏差,而不仅仅是使用 Hesse 矩阵获得近似值?
我正在创建一个股票应用程序,我可以在购买特定股票时保存指数的历史记录.目前我正在使用a HashSet<Integer>
来保存这些值(范围0-270).
在程序中,有很多查找使用的历史记录Set.contains(o)
,即O(1)
.
我正在考虑将此历史更改为a ArrayList<Boolean>
,其中true
at指数0表示指数0处有买入,false
指数1表示指数1处没有买入,等等...
这样,我可以做一个List.get(index)
,这也是O(1)
,但我猜测会稍快一点,因为HashSet
查找的基本性质.
但由于指数的范围很小,我不确定我的假设是否成立.
所以如果我不关心空间复杂性,哪种方法会更快?
鉴于以下课程:
public class SomeClass {
private final int a;
public SomeClass(int a) {
this.a = a;
}
}
Run Code Online (Sandbox Code Playgroud)
哪个在完整性方面更合适?
public final int getA() {
return a;
}
Run Code Online (Sandbox Code Playgroud)
要么
public int getA() {
return a;
}
Run Code Online (Sandbox Code Playgroud)
在我看来,两者都是等价的,所以我甚至都不打扰final
.
但是为了完成,第一种方法似乎比第二种更"正确".
我的具体问题是关于JUnit的参数化测试,如果它包含某个属性,则过滤(基本上不运行)测试.例如:
@Test
public void test1() {
if (property.contains("example")) {
return;
}
assertEquals(expected, methodToTest1(actual));
}
@Test
public void test2() {
if (property.contains("example")) {
return;
}
assertEquals(expected, methodToTest2(actual));
}
Run Code Online (Sandbox Code Playgroud)
问题是,是否存在一种技术,其中约束if (property.equals("example"))...
在其他地方静态定义,而不是在每个测试方法之前?像这样:
/** define constraint "property.equals("example")" somewhere **/
@Test
public void test1() {
assertEquals(expected, methodToTest1(actual));
}
@Test
public void test2() {
assertEquals(expected, methodToTest2(actual));
}
Run Code Online (Sandbox Code Playgroud) 我是递归的新手,我不明白为什么这个函数不能编译.它显然缺少一份退货声明.从测试来看,似乎我的返回语句不会返回?
// recursive search method
public BinaryTree<T> recursiveSearch(BinaryTree<T> t, T key) {
if (key.compareTo(t.getData()) < 0) {
if (t.getLeft() != null) {
recursiveSearch(t.getLeft(), key);
} else {
return null;
}
} else if (key.compareTo(t.getData()) > 0) {
if (t.getRight() != null) {
recursiveSearch(t.getRight(), key);
} else {
return null;
}
} else if (key.compareTo(t.getData()) == 0) { // key is found
return t;
} else { // not in binary tree
return null;
}
}
Run Code Online (Sandbox Code Playgroud)