小编emi*_*lly的帖子

如何在javascript Map中保留序列?

我有myData地图如下

 var myData =  new Object();

 myData[10427] = "Description 10427";
 myData[10504] = "Description 10504";
 myData[10419] = "Description 10419";
Run Code Online (Sandbox Code Playgroud)

但现在当我迭代myData时,我在chrome中没有得到相同的sequnce,IE在Firefox中工作正常.它按密钥的升序迭代

for (var key in myData) {
  alert("key is"+key);
  }
Run Code Online (Sandbox Code Playgroud)

我在警报中按升序获得输出 10419,10427,10504

我如何确保以与插入地图中的数据相同的顺序迭代?

javascript arrays sorting

2
推荐指数
2
解决办法
8706
查看次数

捕获以分号分隔的字符串的组缺少最后一个组

我的输入字符串是

String input=" 4313 :F:7222;scott miles:F:7639;Henry Gile:G:3721";
Run Code Online (Sandbox Code Playgroud)

它是一个带分号分隔符的字符串.它可以包含由分号分隔的任意数量的值

我想在java中使用组捕获功能并捕获以下值(即:分隔)

         4313 :F:7222
         scott miles:F:7639
         Henry Gile:G:3721
Run Code Online (Sandbox Code Playgroud)

我知道我可以在Spring类下使用split函数但是出于某种原因我想在这里使用组捕获.

我试过了

Matcher myMatcher = Pattern.compile("(.*?);").matcher(input);
while (myMatcher.find()) {
    System.out.println("group is " + myMatcher.group());
}
Run Code Online (Sandbox Code Playgroud)

输出是

group is  4313 :F:7222;
group is scott miles:F:7639;
Run Code Online (Sandbox Code Playgroud)

但预期的产出是

group is  4313 :F:7222
group is scott miles:F:7639
group is Henry Gile:G:3721
Run Code Online (Sandbox Code Playgroud)

我没有得到如何捕获最后一个分号后的最后一个值,我也想摆脱分号,正如我在预期的结果中提到的那样.

java regex regex-group

2
推荐指数
1
解决办法
150
查看次数

为什么字符串'35/35/1985`解析为'Sat Dec 05 00:00:00 IST 1987`日期对象?

public static void main(String[] args) throws ParseException {
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
    String dateStr = "35/35/1985";
    Date date = sdf.parse(dateStr);
Run Code Online (Sandbox Code Playgroud)

我期待运行时异常,如日期分析异常,但返回日期对象是 Sat Dec 05 00:00:00 IST 1987

通过什么逻辑字符串35/35/1985解析到目前为止Sat Dec 05 00:00:00 IST 1987

更新: -如果我设置setLenient(false),它会抛出异常.但是,如果我通过35/35/1985解析到目前为止的逻辑字符串,它是真的Sat Dec 05 00:00:00 IST 1987吗?

java date

2
推荐指数
1
解决办法
78
查看次数

jsoup只剥离html标签而不是新行字符?

我在Java中有以下内容,我想只删除html标签而不是新行字符

<p>test1 <b>test2</b> test 3 </p> //line 1
<p>test4 </p> //line 2
Run Code Online (Sandbox Code Playgroud)

如果我在文本丰富的编辑器中打开上面的内容,则第1行和第2行显示在不同的行中(不显示</p>标记).但是在记事本中,内容与</p>标记一起显示.删除我使用的所有html标签

Jsoup.parse(aboveContent).text()
Run Code Online (Sandbox Code Playgroud)

它删除所有html字符.但它在记事本中显示了同一行中的所有第1行和第2行.不知何故,Jsoup还删除了换行符.

我尝试了什么: -

我也试过替换</p>,\r\n然后删除html标签

 Jsoup.parse(contentWith\r\n-Insteadof-</p>Tag ).text()
Run Code Online (Sandbox Code Playgroud)

但仍然Jsoup删除行尾字符(如在调试器中我可以看到line1和line2)在同一行.

我怎么能让Jsoup只剥离html字符而不是新行字符?

html java end-of-line jsoup

1
推荐指数
1
解决办法
6816
查看次数

如何在特定字符串之前获取空间索引?

我有下面的字符串

String = "Test1 Test2 Test3 Test4 Test5 Test6  15min"
Run Code Online (Sandbox Code Playgroud)

我想在字符串"min"之前得到字符空间的索引

有一种方法, String.lastIndexOf(" ")但找不到任何相关的东西?

编辑:-

基本上想在第一分钟之前找到最后一个空格

java regex string

1
推荐指数
1
解决办法
4192
查看次数

增加交换大小如何允许我增加堆大小?

我有 ubuntu 服务器,有 8 GB RAM。当我尝试将堆大小设置为 8GB 时,我的 Web 服务器(weblogic)无法启动。但如果我将交换大小增加到 11 GB,网络服务器就会启动。

所以我的问题是,在增加交换大小后,如何为我的 Web 服务器分配 8GB 堆大小(当我有 8 GB RAM,操作系统需要其中 1 到 2 GB 时)?

java operating-system heap-memory

1
推荐指数
1
解决办法
2287
查看次数

单一责任(SRP)vs不问(TDA)?

我了解许多设计原则在某些情况下会相互冲突。因此,我们必须权衡它们,看看哪个更有利。直到现在,我才意识到SRP原理,并仅以此为基础进行了很多设计,但在内部,遵循该原理有时会感到不对。现在我开始了解TDA,对此我的感觉得到了更多支持:)

SRP:-对象应该担心自己的关注而不是其他人

TDA:-行为(仅取决于其对象状态)应保留在对象本身内部

示例:- 我有不同的形状,如矩形,正方形,圆形等。现在我必须计算面积。

到目前为止,我的设计是:-我遵循SRP,这里有AreaCalculatorService类,该类将询问形状状态并计算面积。该设计背后的理由是形状不应该担心面积计算,因为它不是形状责任。但是理想情况下,我曾经以为区域计算代码应该驻留在每个形状下,如果出现新形状,就好像在线下一样,我必须修改AreaCalculatorService类(这违反了Open的扩展名和闭合的修改原则(OECM))。但始终优先考虑SRP。好像错了

神话被打破了(至少是我的):-使用TDA,我的感觉是正确的,在这里我不应该询问物体的状态,而要告诉形状以计算其面积。尽管它将违反SRP原则,但将支持OECM原则。正如我所说的那样,设计原则有时会相互冲突,但是我相信行为完全取决于其对象状态,行为和状态应该在一起。

另一个示例:-说我必须计算组织中所有雇员的所有部门的薪水,那么我们应该遵循SRP,SalaryCalculatorService将取决于部门和雇员。

它将询问每个员工的薪水,然后对所有薪水进行汇总。因此,我在这里要求员工的状态,但仍不违反TDA calcSalary不仅取决于每个员工的薪水。

让我知道我对这两个原则的解释是否正确,在第一种情况下应遵循TDA,在第二种情况下应遵循SRP?

oop single-responsibility-principle tell-dont-ask design-principles

1
推荐指数
1
解决办法
368
查看次数

转换为Base 64编码的优势?

UTF-8是将Unicode字符串编码为字节序列的方法.Base64是一种将字节序列编码为字符串的方法

下面是我们首先将字符串转换为字节然后再转换为base64字符串的示例

String base64encodedString = Base64.getEncoder().encodeToString("TestString".getBytes("utf-8"));
Run Code Online (Sandbox Code Playgroud)

现在我通过网络发送基础64数据.我的问题是,数据总是以字节序列的形式传输,那么将字节序列转换为字符串的优点是什么?我知道我在这里错过了一些观点,但不知道那是什么意思?

java base64 encoding

0
推荐指数
1
解决办法
193
查看次数