小编the*_*ine的帖子

将字符添加到字符串中

import java.util.Random;

public class PasswordRandomizer {
    // Define the variables
    private Random random = new Random();
    private int passwordLength;
    private String password = "";

    public PasswordRandomizer(int length) {
        // Initialize the variable
        this.passwordLength = length;
    }

    public String createPassword() {
        // write code that returns a randomized password
        for(int i = 0; i < this.passwordLength; i++){
            int j = random.nextInt();
            char symbol = "abcdefghijklmnopqrstuvwxyz".charAt(j);
            this.password = this.password + symbol; 
        }
        return this.password;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在字符串中添加字符,我试过这个,但是我收到了这个错误:

"线程中的异常"主"java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-414383904".

java string char

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

在C++基类构造函数中注入代码

我正在派生一个可以从C++库中获得的类,我的子类的构造函数只有在我调用基类构造函数之前执行某些代码时才能正常工作.(是的,我知道,糟糕的设计,但我不能影响我正在使用的图书馆的工作方式.)

如果基类构造函数接受参数,那么这样做实际上非常简单:

struct A {
    A(bool a) { printf("A::A()\n"); }
};

bool inject(bool a) { printf("inject()\n"); return a; }

struct B : public A {
    B(bool a) : A(inject(a)) { printf("B::B()\n"); }
};
Run Code Online (Sandbox Code Playgroud)

现在,当我构造一个B的实例时,inject()之前会被调用A::A().但是当基类ctor没有参数时,有没有办法做到这一点?

c++ constructor

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

多重溢出测试

如何正确检查整数乘法中是否发生溢出?

int i = X(), j = Y();
i *= j;
Run Code Online (Sandbox Code Playgroud)

如何检查溢出,给定值i,j并且它们的类型?请注意,对于有符号和无符号类型,检查必须正常工作.可以假定这两个ij是同一类型的.也可以假设在编写代码时已知类型,因此可以为签名/未签名的案例提供不同的解决方案(不需要模板杂耍,如果它在"C"中工作,则是奖励).

编辑:@pmg的答案是正确的.我暂时无法绕过它的简单,所以我会在这里与你分享.假设我们要检查:

i * j > MAX
Run Code Online (Sandbox Code Playgroud)

但我们无法真正检查,因为i * j会导致溢出,结果将是不正确的(并且总是小于或等于MAX).所以我们这样修改它:

i > MAX / j
Run Code Online (Sandbox Code Playgroud)

但这并不完全正确,因为在分工中,涉及到一些四舍五入.相反,我们想知道这个结果:

i > floor(MAX / j) + float(MAX % j) / j
Run Code Online (Sandbox Code Playgroud)

因此我们有了除法本身,它被整数算术隐含地向下舍入(在floor那里是无操作,仅作为例证),并且我们在前一个不等式中缺少了除法的其余部分(其评估为更少)比1).

假设ij是两个数字在极限,如果它们中的任何一个增加1,将发生溢出.假设其中没有一个是零(在这种情况下,没有溢出会发生无论如何),两者(i + 1) * ji * (j + 1)均超过1 + (i * j).因此,我们可以安全地忽略除法的舍入误差,该误差小于1.

或者,我们可以重新组织:

i - …
Run Code Online (Sandbox Code Playgroud)

c c++ integer

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

如何在c#中实现Pell数计算

我正在尝试计算Pell数字,但是我总是以Cannot evaluate expression because the current thread is in a stack overflow state.异常结束,因为该方法是递归调用的.

static int calcPell(int input)
{
    int i = 0;
    try
    {
        if (input == 0 || input == 1)
            return input;
        else
            return i = (2 * calcPell(input - 1) + calcPell(input + 1));
    }
    catch(Exception ex)
    {
        Console.Write(ex.Message);
    }
    return i;
}
Run Code Online (Sandbox Code Playgroud)

c#

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

AMD GPU上的OpenCL 2.0

我正试图在AMD Fury X上初始化OpenCL 2.0,而我正在研究它的价值__OPENCL_VERSION__.无论如何都是120.我在寻找我的司机和内外#define __OPENCL_VERSION__ 120#define __OPENCL_VERSION__ 200可以在那里找到.

是否需要在某处启用特殊标志才能启用2.0版?我有以下平台和设备:

Advanced Micro Devices,Inc.的OpenCL平台"AMD加速并行处理",版本OpenCL 2.0 AMD-APP(1912.5),FULL_PROFILE
设备:Advanced Micro Devices,Inc.'斐济'(驱动程序版本:1912.5(VM))
OpenCL版本: OpenCL 2.0 AMD-APP(1912.5)
OpenCL"C"版本:OpenCL C 2.0

编辑

啊,傻.它似乎有助于-cl-std=CL2.0在编译器选项中指定clCreateProgramWithSource.那应该是预期的行为吗?

gpu opencl amd-app

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

Java8 - 文本不在TextArea中显示

这是一个小代码,应显示textarea并应显示我输入的内容.但我不知道它为什么不显示文字.当我按住任意键时,水平滚动条会移动,这意味着某些东西在那里,但没有任何东西显示出来.我正在使用JDK 1.8并在Windows 7 64位上使用记事本进行编辑.

public class tarea
{

    public static void main (String[] args)
    {
        Frame f = new Frame("My Frame");
        f.setLocation(100, 100);
        f.setSize(500, 500);    
        f.setLayout(null);
        f.setBackground(Color.BLACK);
        f.setTitle("My area");

        TextArea ta = new TextArea();
        ta.setBounds(10, 10, 400, 400);
        f.add(ta);

        f.setVisible(true);

    }
}
Run Code Online (Sandbox Code Playgroud)

java awt java-8

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

Hbase 表未显示任何版本控制

我正在使用 Cloudera Quick Start VM 并在其上运行 hbase。以下是我的疑问:

hbase(main):009:0> create 'test', 'cf'
0 row(s) in 0.4500 seconds

=> Hbase::Table - test
hbase(main):010:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.1950 seconds

hbase(main):011:0> put 'test', 'row3', 'cf:c', 'value4'
0 row(s) in 0.0580 seconds

hbase(main):012:0> scan 'test' 
ROW                                      COLUMN+CELL                                                                                                         
 row3                                    column=cf:c, timestamp=1414148485533, value=value4                                                                  
1 row(s) in 0.0420 seconds

hbase(main):013:0> scan 'test', {VERSIONS => 3}
ROW                                      COLUMN+CELL                                                                                                         
 row3                                    column=cf:c, timestamp=1414148485533, value=value4                                                                  
1 row(s) in 0.0370 seconds

hbase(main):014:0> get 'test', 'row3', {COLUMN => 'cf:c', …
Run Code Online (Sandbox Code Playgroud)

hbase

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

使用分隔符连接字符串,忽略空字符串

我想形成一个变量.

如果它不是null或为空或undefined我不想将@符号附加到它:

var T1  = 'Popcorn'
var T2  = 'Icecreams'
var T3  = '';
var T4  = '';

if(T1!=''||T2!=''||T3!=''||T4!='')

reqstr = T1+'@'+T2+'@'+T3+'@'+T4;

alert(reqstr);
Run Code Online (Sandbox Code Playgroud)

现在输出是:

爆米花@冰淇淋@@

如果变量为空,我不想追加@,这意味着我只需要:

爆米花@冰淇淋

小提琴.

javascript

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

标签 统计

c++ ×2

java ×2

amd-app ×1

awt ×1

c ×1

c# ×1

char ×1

constructor ×1

gpu ×1

hbase ×1

integer ×1

java-8 ×1

javascript ×1

opencl ×1

string ×1