小编Ste*_* P.的帖子

简单的StringBuilder构造函数/方法问题

我有一个StringIndexOutOfBoundsExceptionsetCharAt(int index, char ch):

StringBuilder word = new StringBuilder(4);

for(int i = 0; i < 4; i++)
    word.setCharAt(i,'-');
Run Code Online (Sandbox Code Playgroud)

StringBuilder(int capacity):构造一个不包含字符的字符串构建器以及capacity参数指定的初始容量.

setCharAt(int index, char ch):指定索引处的字符设置为ch.

我唯一能想到的是没有分配内存,但那又有什么意义StringBuilder(int capacity)呢?

java

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

明确地将类型放入菱形运算符与让java弄清楚之间有区别吗?

初始化之间有什么区别:

MyWrapper<String> wrapper = new MyWrapper<String>();
Run Code Online (Sandbox Code Playgroud)

vs初始化:

MyWrapper<String> wrapper = new MyWrapper<>();
Run Code Online (Sandbox Code Playgroud)

是否有人想要使用前者而不是后者?我看到很多前者; 我不确定这是不是因为这是人们习惯的,或者你有理由想这样写.

java generics

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

便携式方法,以保证DateFormat的年份字段只有两位数

目前,我有

private ThreadLocal<DateFormat> shortDateFormat = new ThreadLocal<DateFormat>() {
    @Override protected DateFormat initialValue() {
        final DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT);
        return format;
    }
};
Run Code Online (Sandbox Code Playgroud)

使用我的Android 4.1,这为我提供了日期格式(在我的本地化.对于其他国家可能看起来不同)

19/07/2013

但是,有时我希望有一个更短的版本,如19/07/13

我不想硬编码

DD/MM/YY

由于上述方式不能在不同国家之间移植.有些国家,他们的月份是在约会之前.

有没有可行的方法来实现这一目标?

p/s不仅是月/日订单.可能还有其他问题.例如,中国正在使用19-07-13或19-07-2013.其他国家可能会有更多边缘案例,但我不知道.

java android

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

获得经验证据以显示浮动和双重内部存储差异的问题

昨天有人问了这个问题.据我所知,java解释3.0为a double,并且3f是a float,并且doubles具有64位精度并floats具有32位精度.如果有人问我,我会给出类似于给出的答案; 但是,我想提供经验证据,这些证据非常明确地说明java商店3.03f不同的商店.

这是我尝试过的,但收效甚微:

    System.out.println("Double: " + Double.toHexString(d)); //prints 0x1.8p1
    System.out.println("Float: " + Float.toHexString(f)); //prints 0x1.8p1

    System.out.println("Double: " + new Double(d).byteValue()); //prints 3
    System.out.println("Float: " + new Float(f).byteValue());  //prints 3 

    Long l = Double.doubleToLongBits(d);
    Integer i = Float.floatToIntBits(f);

    System.out.println("Double (long bits): " + l); //prints 4613937818241073152
    System.out.println("Float (int bits): " + i); //prints 1077936128
Run Code Online (Sandbox Code Playgroud)

这些是不同的,但那是因为floats使用单格式(8位偏置指数),并doubles使用双格式(11位偏置指数).有关更多信息,请参阅IEEE算术.我将两者转换为二进制表示形式,但再次没有得到任何结果: …

java

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

C#中Java的ByteBuffer.wrap相当于什么?

byte[] input = new byte[] {2, 4, 5, 2, 1};
ByteBuffer bytebuf = ByteBuffer.wrap(input);
Run Code Online (Sandbox Code Playgroud)

ByteBuffer.wrap(byte[] array) 方法使缓冲区和数组相互连接,对缓冲区的修改将导致数组被修改,反之亦然.

ByteBufferC#中的等价物是memorystream.但我不知道如何连接内存流与数组喜欢的ByteBuffer.wrap()方法.

有人能说出ByteBuffer.wrap()C#中的等价物吗?我到处搜索但根本找不到答案.

提前致谢.

c# java bytebuffer memorystream

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

分析各种增量运算符与赋值和递增

所以有人问过++运算符比a = a + 1更有效吗?前阵子.我以为我之前分析了这个,并且最初说a = a + 1和增量运算符之间没有区别++.事实证明,a++,++aa += 1所有编译到相同的字节,但a = a + 1确实没有,因为可以看到下面:

public class SO_Test
{
    public static void main(String[] args)
    {
        int a = 1;
        a++;
        a += 1;
        ++a;    
    }
}
Run Code Online (Sandbox Code Playgroud)

输出: 在此输入图像描述

例:

public class SO_Test
{
    public static void main(String[] args)
    {
        int a = 1;
        a = a + 1;
        a++;
        a += 1;
        ++a;    
    }
} …
Run Code Online (Sandbox Code Playgroud)

java bytecode

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

唯一性约束和索引问题

我必须做错事,或者对约束和索引有误解.我有以下内容:

CREATE CONSTRAINT ON (u:User) ASSERT u.user_id IS UNIQUE
Run Code Online (Sandbox Code Playgroud)

CREATE INDEX ON :User(user_id)
Run Code Online (Sandbox Code Playgroud)

我尝试过交替订单,但无论如何,我得到了:

Neo.ClientError.Schema.ConstraintAlreadyExists
Run Code Online (Sandbox Code Playgroud)

要么

Neo.ClientError.Schema.IndexAlreadyExists
Run Code Online (Sandbox Code Playgroud)

取决于订购.

我不明白为什么我不能这样做.我想要查找快速查找user_id,这就是为什么我要编制索引,我也想确保它user_id是唯一的,这就是为什么我有一个约束.

我有什么误会?我应该怎么做呢?

neo4j cypher

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

映射:我们可以用某些东西代替条件运算符

所以,我理解以下代码的作用及其工作原理,但似乎应该有不同的方法来执行此操作:

my @squares = map { $_ > 5 ? ($_ * $_) : () } @numbers;
Run Code Online (Sandbox Code Playgroud)

有没有办法我们可以说:

my @squares = map { if ($_ > 5) then ($_ * $_) } @numbers;
Run Code Online (Sandbox Code Playgroud)

或者我们必须为每个条目都有"规则",即否则返回()?

perl

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

使用equalsIgnoreCase检查ArrayList <String>包含("")方法

我有一个ArrayList();

List<String> list = new ArrayList<>();
list.add("aaa");
list.add("BBB");
list.add("cCc");
System.out.println(list.contains("aAa"));
Run Code Online (Sandbox Code Playgroud)

这里我想在同一行中使用equalsIgnoreCase方法检查contains()方法.我该怎么做?

java string collections

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

Java浮点澄清

我正在阅读约书亚布洛赫的Java益智游戏.在谜题28中,我无法理解以下段落 -

这是有效的,因为浮点值越大,值与其后继值之间的距离越大.这种浮点值的分布是它们用固定数量的有效位表示的结果.将1添加到足够大的浮点值将不会更改该值,因为它不会"弥合"与其后继者之间的差距.

  1. 为什么较大的浮点值的值与后继值之间的距离较大?
  2. 在这种情况下Integer,我们添加一个来获得下一个Integer,但是如果float,我们如何获得下一个float值?如果我有IEEE-754格式的浮点值,我是否在尾数部分添加1以获得下一个浮点数?

java floating-point

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