小编Red*_*ddy的帖子

Java String拆分删除了空值

我试图使用分隔符拆分值.但我发现了令人惊讶的结果

String data = "5|6|7||8|9||";
String[] split = data.split("\\|");
System.out.println(split.length);
Run Code Online (Sandbox Code Playgroud)

我期待得到8个值.[5,6,7,EMPTY,8,9,EMPTY,EMPTY] 但我只得到6个值.

任何想法和如何解决.无论EMPTY值在任何地方出现,它都应该在数组中.

java string split

262
推荐指数
4
解决办法
14万
查看次数

Lambda表达式将数组/ String列表转换为数组/整数列表

由于Java 8带有强大的lambda表达式,

我想写一个函数将一个List /数组的字符串转换为数组/整数列表,浮点数,双精度等.

在普通的Java中,它会如此简单

for(String str : strList){
   intList.add(Integer.valueOf(str));
}
Run Code Online (Sandbox Code Playgroud)

但是如果将一个字符串数组转换为整数数组,我如何用lambda实现相同的效果.

java arrays collections lambda java-8

107
推荐指数
5
解决办法
16万
查看次数

Elasticsearch vs Cassandra vs Elasticsearch与Cassandra

我正在学习NoSQL,并根据我的客户要求查看不同的选项.在提出这个问题之前我已经经历了各种资源(一个对NoSQL知之甚少的人)

  • 我需要以更快的速度存储数据并读取数据.
  • 完全故障安全且易于扩展.
  • 能够搜索Analytics的数据.

我最后得到了一份简短的清单: Cassandra and Elasticsearch

我所理解的是Cassandra对我来说是一个完美的NoSQL存储解决方案,因为我可以使用索引编写数据和读取数据.它失败或失败的地方是分析.在未来,如果我想从数据中获取数据from_date to to_date,或者有更多方法来获取分析数据,如果我没有正确设计数据模型或保持长期视野,这在不断变化的世界中可能会非常困难.

虽然Elastic Search最好是索引(由Lucene支持),并且可以通过抛出一些随机文本随机搜索数据.但即使我想检索数据from_date to to_date(我希望它可能是),它的工作原理是否相同.但真正的问题是,它是一个搜索引擎,还是完美的NoSQL数据存储,如Cassandra?如果是的话,为什么我们仍然需要Cassandra?

如果这两者都在不同的世界,请解释一下!我们如何将它们结合起来以获得更有效的解决方案?

lucene cassandra elasticsearch

105
推荐指数
3
解决办法
5万
查看次数

Module vs Namespace - Import vs Require Typescript

我却看到很多与困惑module/namespace/exportimport, require, reference使用.来自Java背景,有人可以简单地解释我何时使用什么和什么是正确的设计?在编写示例项目时,我觉得自己搞砸了

到目前为止,这是我的理解1. module适用于外部包2. namespace适用于内部包

  • 我没有得到我们如何分类他们?
  • 何时导出类或命名空间或包?
  • 如果我们导出包/命名空间,则导出其中的所有类或者需要显式导出它们
  • 如何导入/需要每个人?

根据doc,如果我为每个管理器/模型创建每个"ts"文件,Typescript不建议使用"命名空间"?直接使用参考路径?

请详细解释,因为我来自不同的背景,不确定ES6/ES5等.

我看到有几个人对同样的问题感到困惑.我希望有人可以用现实世界的场景详细解释

typescript

82
推荐指数
5
解决办法
3万
查看次数

忽略Git中的.classpath和.project

我一直告诉我和其他人不要提交.classpath和.project文件并使用Maven.

不知何故,初级开发人员总是忽略某些规则并提交这些文件,并且为可以跳转并开始使用代码的新手提供这样的文件要好得多.

现在从myside,我想尝试/做一些事情.当我克隆repo时,我将获得.classpath和.project文件,当然它们会在我的系统中被修改.

但我希望它们不会被提交,并且在与Git同步时应该始终被忽略.因此,我在本地系统中的更改不会搞砸Git和Git这些文件的更改不会弄乱我的本地文件.

我该如何实现这一目标?无论如何要以这种方式标记要忽略的文件?

java eclipse git gitignore

69
推荐指数
3
解决办法
8万
查看次数

Java,如果List包含String则返回

在Java中,我想检查一个String是否存在于List<String> myList.

像这样的东西:

if(myList.contains("A")){
    //true
}else{
    // false
}
Run Code Online (Sandbox Code Playgroud)

问题是myList可以包含未修剪的数据:

{'  A', 'B  ', '  C  '}
Run Code Online (Sandbox Code Playgroud)

如果我的项目'B'在列表中,我希望它返回true .我该怎么做?我想避免循环结构.

java arrays string list

51
推荐指数
4
解决办法
23万
查看次数

具有多个语句的Java 8 Lambda Stream forEach

我还在学习Lambda,请原谅我如果我做错了什么

final Long tempId = 12345L;
List<Entry> updatedEntries = new LinkedList<>();

for (Entry entry : entryList) {
    entry.setTempId(tempId);
    updatedEntries.add(entityManager.update(entry, entry.getId()));
}

//entryList.stream().forEach(entry -> entry.setTempId(tempId));
Run Code Online (Sandbox Code Playgroud)

似乎forEach只能为一个语句执行.它不会返回更新的流或函数以进一步处理.我可能完全选择了错误的一个.

有人可以指导我如何有效地做到这一点?

还有一个问题,

public void doSomething() throws Exception {
    for(Entry entry: entryList){
        if(entry.getA() == null){
            printA() throws Exception;
        }
        if(entry.getB() == null){
            printB() throws Exception;
        }
        if(entry.getC() == null){
            printC() throws Exception;
        }
    }
}
    //entryList.stream().filter(entry -> entry.getA() == null).forEach(entry -> printA()); something like this?
Run Code Online (Sandbox Code Playgroud)

如何将其转换为Lambda表达式?

java lambda java-8

40
推荐指数
4
解决办法
9万
查看次数

Java 8 Lambda - 两个列表的交集

我试图找到intersection两个基于某些条件并执行一些步骤的列表.找不到办法(在学习阶段):)

Double totalAmount = 0.00d;
Double discount = 0.00d;


List<OrderLineEntry> orderLineEntryList = orderEntry.getOrderReleases().stream()
    .flatMap(orderReleaseEntry -> orderReleaseEntry.getOrderLines().stream())
    .filter(orderLineEntry -> orderLineEntry.getStatus().equals("PP") || orderLineEntry.getStatus().equals("PD"))
    .collect(Collectors.toList());

for (OrderLineEntry orderLineEntry : orderLineEntryList) {
    for (SplitLineEntry splitLineEntry : splitReleaseEntry.getLineEntries()) {
        if (splitLineEntry.getOrderLineId().equals(orderLineEntry.getId()) && splitLineEntry.getStatusCode() != "PX") {
            totalAmount += orderLineEntry.getFinalAmount();
            couponDiscount += orderLineEntry.getCouponDiscount() == null ? 0.00d : orderLineEntry.getCouponDiscount();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,逻辑很简单

根据一些过滤器从订单获取所有项目list并与另一个过滤list并做一些事情.

java lambda intersection java-8

38
推荐指数
2
解决办法
7万
查看次数

使用Java在不同域上单一登录[SSO]

我们正在跨多个应用程序实施单点登录[SSO],这些应用程序托管在不同的域和不同的服务器上.

在此输入图像描述

现在如图所示,我们引入了一个Authenticate Server,它实际上与LDAP交互并对用户进行身份验证.将使用/与Authenticate Server通信的应用程序托管在不同的服务器和域中.

对于SSO,我不能使用会话变量,因为有不同的服务器和不同的应用程序,不同的域,域级cookie /会话变量没有帮助.

我正在寻找一个更好的解决方案,可用于跨越他们的SSO.任何已证实的实施都存在?如果是这样,请发布或指出我正确的方向.

java authentication servlets multiple-domains single-sign-on

22
推荐指数
1
解决办法
3万
查看次数

Eclipse FeatureNotFoundException

我用maven构建了我的项目所有构建成功并且eclipse属性生成也是成功的

但是当我在Eclipse 4中打开项目时,我收到了这个错误

An internal error occurred during: "Loading descriptor for SALYExplorer.".
org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'taglib' not found. (platform:/resource/SALYExplorer/src/main/webapp/WEB-INF/web.xml, 313, 10)
Run Code Online (Sandbox Code Playgroud)

在那个地方我有一些属性

虽然项目运行顺利,一切都很好,但只是在导航窗格中探索项目时,Eclipse总是抛出这个错误框(非常烦人).

在该位置的COED

<taglib>
    <taglib-uri>xx.tld</taglib-uri>
    <taglib-location>/WEB-INF/tld/xx.tld</taglib-location>
</taglib>
Run Code Online (Sandbox Code Playgroud)

和xx definations int它的文件

<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
     "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_2.dtd">
<taglib>

  <tlib-version>1.0</tlib-version>
  <jsp-version>1.2</jsp-version>
.........
</taglib>
Run Code Online (Sandbox Code Playgroud)

eclipse web.xml

21
推荐指数
2
解决办法
4万
查看次数