小编shm*_*sel的帖子

PHP substr 中断表情符号

我只需要从用户提交的段落中获取 30 个字符。如果第 30 个字符是表情符号,则输出会显示问号。如何避免破坏表情符号?

echo substr("Hello world Hello world Hell", 0, 30);

输出:Hello world Hello world Hell??

另外,当使用 json_encode 返回输出时,输出为空。

$myvariable = array();
$myvariable['hello'] = substr("Hello world Hello world Hell ", 0, 30);
echo json_encode($myvariable);
Run Code Online (Sandbox Code Playgroud)

php emoji

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

移位数组中的数字

我想在java中创建一个方法,它将采用一维数组并将所有非零数字移到数组的左侧.我尝试了一些方法,但没有任何工作.有人能帮助我吗?以下示例供您参考:

int[] x = {0,8,0,7,0,0,2};
answer = {8,7,2,0,0,0,0}

int[] y = {5,0,0,0,1,0,3};
answer = {5,1,3,0,0,0,0}
Run Code Online (Sandbox Code Playgroud)

这就是我试过的:

import java.util.Arrays;

public class Board
    {

    public static final int EMPTY = 0;

    public static boolean alterOneLine(int[] x)
    {
        int[] temp = new int[x.length];
        for(int i=0;i<x.length;i++)
        {
            if (x[i]!=EMPTY)
                temp[i]=x[i];
        }
        if(Arrays.equals(x,temp))
            return false;
        else
            return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays

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

如何按长度映射字符串流

我得到了一串字符串,并希望按长度映射它们

 Stream<String> s = Stream.of("aaaa", "a", "aaa", "a", "aaaa", "aa", "aaaaaa", "aa");
 Map<Integer, Set<String> result = null;
 int i = 0;
 result.put(i, s.filter(x -> (x.length() == i));
Run Code Online (Sandbox Code Playgroud)

显然,这不会以这种方式工作,因为我不能多次打开流,并且我无法访问longes String以获得良好的循环.但是我怎么能做到呢?

java java-stream

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

如何转换循环迭代n次以使用java Streams API实现列表,其中多个计数动态更改

想要在下面的代码段中使用Streams API并删除当前for循环:

public List<MyObject> performSomeAction(){
    List<String> myList= Arrays.asList("abc","xyz","def");
    List<MyObject> resultList=new ArrayList<MyObject>();
    int startIndex=0;
    int totalNumOfRecords=1000; 
    for(int i=0;i<totalNumOfRecords;i++){
        SomeObject o= xService.doSomething();
        String type = o.getType();
        int length = o.getLength();
        if(myList.contains(type)){
            int[] myarray=getMyArray(startIndex+20, startIndex+length);
            String id=o.getSomeId();
            OtherObject obj= xService.performOperation(myarray,"abcd");
            resultList.add(new MyObject(obj,id));
        }
        startIndex+=length;
    }
    return resultList;
}
Run Code Online (Sandbox Code Playgroud)

我试过这样的事情:

IntStream.range(0,totalNumOfRecords).forEach(i -> xService.doSomething());
Run Code Online (Sandbox Code Playgroud)

但我陷入困境,没有得到进一步的进展,需要从派生对象'o'中取出多个值,并使用它在它上面执行过滤器再次使另一个方法调用得到一些数组,将其传递给其他方法返回我需要创建resultList的其他对象

java java-8 java-stream

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

Java 8:使用另一个列表过滤对象内的列表

我有一个名为“foodList”的列表,其中包含“Food”类型的元素。对象 Food 包含一个名为“categories”、类型为“Category”的列表。

我目前正在实施一种搜索算法,通过排除某些类别来过滤食物。

排除的类别存储在名为“excludedCategories”的列表中。

如何使用 Java 8 和流,通过排除类别列表包含排除类别列表中任何元素的食物对象来过滤 foodList?

带循环的示例代码:

for (Food f: foodList)
{
     for (Category c: f.categories)
     {
          if (excludedCategories.contains(c))
          {
               // REMOVE ITEM FROM foodList
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你!

java loops list java-stream

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

如何将字符串中特定单词的所有形式转换为小写?

我正处于编码的第一学期,并且完全陷入了这个困境。

我想要将一个单词的所有形式(例如:HeLLo、hEllO、heLlo,...)更改为小写,并且不知道如何在不为文件中的每个变体编写条件的情况下实现该目标。我有很多单词必须转换为小写或大写,所以我意识到必须有更好的方法,但不知道是哪个。

有没有办法一次性获取所有这些变体并将它们转换为小写?

输入 =“HeLlo 这是我的程序,名为 HELLO”

输出=“你好,这是我的程序,名为你好”

我只尝试过:

word.replace("你好", "你好");

word.replace("你好", "你好"); 等等..

java lowercase uppercase

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

增强的for循环如何迭代原始类型?

我知道增强的for循环(因为java 1.5)可以用于迭代实现Iterator接口的类类型的集合.然而,它也可以用于迭代基本类型的数组,例如int,boolean,......所以我的逻辑结论是,由于自动装箱和拆箱,例如,原始整数被包装在它们的引用类型中,然后它们将被包含在内.轮到他们,实现Iteratable.

但是,当我查阅文档时java.lang.Integer,没有提到任何可以实现或扩展Iterable接口的超类或接口的扩展或实现.如果没有实现Iterable接口,增强的for循环如何知道如何循环原始类型?

java foreach iterator for-loop

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

Java中的ArrayList没有实现Collection接口的方法?

我目前对这个问题有点困惑.我注意到ArrayList是一个实现List的类,后者又扩展了Collection.

Collection<?>我们有一堆方法,一个可识别的方法containsAll().我查看了官方文档,ArrayList但可以看出,Array列表中没有这样的方法.在页面的页脚中写了一些东西,说"继承的方法",containsAll()并在那里提到.

我不明白(从文档中)是,containsAll()即使它在ArrayList类中有空体还是根本没有定义?如果不是这种违反Java规则的行为?

还有其他人以同样的方式"失踪"吗?!

java inheritance multiple-inheritance

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

使用流删除一个列表中的元素(如果存在于另一个列表中)

我在这里没有找到任何关于这个问题的线索。我正在尝试使用 java 流删除一个列表 (cars1) 中存在于另一个列表 (cars2) 中的元素(在我的例子中为汽车)。我尝试使用removeIf,但后来感觉它更适合字符串列表等。

    Car c1 = new Car();
    c1.id = 1;
    c1.name = "C1";

    Car c2 = new Car();
    c2.id = 2;
    c2.name = "C2";

    List<Car> cars1 = new ArrayList<Car>();
    cars1.add(c1);
    cars1.add(c2);

    List<Car> cars2 = new ArrayList<Car>();
    cars2.add(c2);

    // TODO : Remove all the cars from cars1 list that are in cars2 list using java streams
Run Code Online (Sandbox Code Playgroud)

java remove-if java-stream

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

如何知道java中2个日期之间的天数?

我正在尝试计算 Java 中两个日期之间的差异。例如,我有:

LocalDate TodayDate = LocalDate.now(); //That returns me ==> year/month/day
LocalDate ExpireDay = LocalDate.of("2018-01-12");
Run Code Online (Sandbox Code Playgroud)

我想知道两个日期之间相差多少天,我该怎么办?我尝试使用ExpireDay.minus(Period.ofDays());但它不起作用... :(

java date localdate

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

使用 java 8 流将集合转换为 Map&lt;String,Collection&lt;String&gt;&gt;

我希望将 a 转换Collection<Placement>Map<String, Collection<String>>使用 java 流,其中Placement类如下

public class Placement {

   private String id;

   /* Links two placements, may be same for atleast 2 placements. */
   private String futureLinkId;
}
Run Code Online (Sandbox Code Playgroud)

地图的键是未来链接 id,值是放置 id。例如,如果有 2 个展示位置 p1 { id=1, futureLinkId=f1 }, p2 { id=2, futureLinkId=f1 },则输出应为Map { f1 - { id1, id2 } }

java lambda java-stream

-3
推荐指数
1
解决办法
1874
查看次数

java中什么是破坏性方法和非破坏性方法?

该接口中包含的“破坏性”方法,即修改其所操作的地图的方法,被指定为在该地图不支持该操作时抛出 UnsupportedOperationException。

java

-4
推荐指数
1
解决办法
4764
查看次数

Parcelable的readInt(),readFloat()等知道它们检索的是什么值?

如果你的类实现了parcelable,那么你知道你需要一个构造函数来让系统根据它刚刚收到的parcel来构造你的类.

所以通常像下面那样的构造函数必须被编写,这就是它有点令人困惑的地方:

public myClass(Parcel in){
   this.type = in.readInt();
   this.size = in.readInt();
}
Run Code Online (Sandbox Code Playgroud)

你看,如果有一个参数,这些读取相关的方法被调用如下:

   this.type = in.readInt(type);
   this.size = in.readInt(size);
Run Code Online (Sandbox Code Playgroud)

然后很清楚发生了什么,但相反,他们根本没有任何参数.所以我想知道:这应该怎么做?这些方法在某种程度上是"聪明的",你不必告诉他们要获得哪个领域,他们总能设法得到正确的方法吗?

还是顺序?如果我像这样使用它:

   this.size = in.readInt();
   this.type = in.readInt();
Run Code Online (Sandbox Code Playgroud)

我即将获得的领域都会搞砸了?如果是这样的话,这不是乞求错误吗?由于一个粗心的错误,我可能会在很长一段时间内做错事但只是在很长一段时间之后找到它?

java android parcelable

-4
推荐指数
1
解决办法
89
查看次数