小编Abo*_*ank的帖子

使用任意数量的逗号和空格拆分字符串

我有一个字符串,我试图变成一个列表,但我得到空条目.

",A,B,C,D, ,,,"
returns
[, A, B, C, D,  , , ,]
Run Code Online (Sandbox Code Playgroud)

我想删除所有"空"逗号:

[A, B, C, D]
Run Code Online (Sandbox Code Playgroud)

我尝试着

current.split(",+\\s?")
Run Code Online (Sandbox Code Playgroud)

这不会产生我想要的结果.我应该使用什么正则表达式呢?

java regex

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

通过TCP发送音频流,UnsupportedAudioFileException

我成功地通过TCP套接字发送和读取文本和图像数据.但我无法发送和读取音频流数据.

服务器上的示例代码:

public class ServerAudio {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        try {
            ServerSocket serverSocker = new ServerSocket();
            Socket client = null;
            serverSocker.bind(new InetSocketAddress(6666));
            if (serverSocker.isBound()) {
                client = serverSocker.accept();
                OutputStream out = client.getOutputStream();
                while (true) {
                    AudioInputStream ain = testPlay("C:/Users/Public/Music/Sample Music/adios.wav");
                    if (ain != null) {
                        AudioSystem.write(ain, AudioFileFormat.Type.WAVE, out);
                    }
                }
            }
            serverSocker.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    public static AudioInputStream testPlay(String filename) {
        AudioInputStream …
Run Code Online (Sandbox Code Playgroud)

java sockets tcp audio-streaming

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

使用join()和wait()线程java

我需要制作一系列线程.他们需要按照以下顺序开始:

A then B then C and finally D.

D完成后,C可以完成B,然后是A.

在这种情况下使用join()线程还是什么更好wait()?为什么?

我的线程需要启动并打印消息Hello I'm thread a/b/c/d,完成后需要打印I'm finished a/b/c/d.

java multithreading

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

使用通用类型Enum创建EnumMap

如果我有一堆包含Enum和EnumMap的类,我想为这些类创建一个超类.

public interface ColorEnum {
}

class ColorMarbles extends Toy {
    enum MARBLE implements ColorEnum
        { BLUE, GREEN }
    EnumMap<MARBLE, String> names = new EnumMap<MARBLE, String>(MARBLE.class);
    //stuff
    // fields

    public void populate(ArrayList<String> designer) {
        int i = 0;
        for(MARBLE marble : MARBLE.values()) {
            marble.name = designer.get(i);
            i++;
        }
    }
}

class ColorBalloons extends Toy {
    enum BALLOON implements ColorEnum
        { YELLOW, RED }
    EnumMap<BALLOON, String> names = new EnumMap<BALLOON, String>(BALLOON.class);
    //stuff
    // fields

    public void populate(ArrayList<String> designer) {
        int i …
Run Code Online (Sandbox Code Playgroud)

java

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

使用Bytebuffer写出的返回与简单的写出不同

我正在尝试将字节数据写入文件并进行优化,我希望减少写入文件的次数.

目前,我正在使用:

try (RandomAccessFile out = new RandomAccessFile(file, "rw")) {

    for(int i = 0; i < totalPkts; i++) {
        out.writeInt(data.get(i));
    }
}
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但由于有很多out.write调用,所以速度很慢.

所以相反,我试图用a ByteBuffer来代替:

try (RandomAccessFile out = new RandomAccessFile(file, "rw")) {
    ByteBuffer buffer = ByteBuffer.allocate(totalPkts*4); // prevent BufferOverflow

    for(int i = 0; i < totalPkts; i++) {
        buffer.putInt(data.get(i));
    }
    out.write(buffer.array());
}
Run Code Online (Sandbox Code Playgroud)

这两种方法生成的文件大小不同.该ByteBuffer文件几乎比普通输出文件大整整mb.这可以解释为什么差异会说他们不一样.

我尝试使用DataOutputStream,结果是一样的.使用的文件ByteBuffer仍然比不使用的文件大约1mb ByteBuffer.

java bytebuffer randomaccessfile

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

我可以使用JSCH将远程主机重新添加到known_host吗?

我希望能够从known_hosts中删除远程服务器密钥并再次添加.远程服务器经常更新,因此我想自动删除远程主机密钥并将其新密钥添加到known_hosts.我可以从known_hosts中删除密钥,虽然它很笨重并使用Process而不是通过JSCH.这有效但我每次尝试访问服务器时都会遇到此消息:

The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
RSA key fingerprint is 10:10:30:00:e7:0c:d3:18:cf:ac:42:e2:f3:51:25:bg.
Are you sure you want to continue connecting (yes/no)? 
Run Code Online (Sandbox Code Playgroud)

我知道可以使用UserInfo绕过此消息,但我使用其他方式连接到远程服务器,例如a Process,当我运行这些命令时会出现消息.

是否可以使用JSCH从known_hosts中删除并添加主机ID?

虽然它不使用jsch可能相关:

如何编写程序(脚本)以从〜/ .ssh/known_hosts中删除过时的主机密钥?

java jsch

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

使用"这个".在Java中的构造函数中

我已经设置了这样的构造函数:

public class VendingMachine {

    private double currentBalance;
    private double itemPrice;
    private double totalCollected;

    public VendingMachine(double itemCost) {
        currentBalance = 0;
        totalCollected = 0;
        itemPrice = itemCost;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的问题是通过接受double的参数来设置我的构造函数有什么不同itemCost.

有什么不同而不是做到:

this.itemPrice = itemCost;
Run Code Online (Sandbox Code Playgroud)

java constructor

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

即使没有volatile,线程值也不会被线程缓存?

class Counter
{
    public int i=0;
    public void increment()
    {
        i++;
        System.out.println("i is "+i);
        System.out.println("i/=2 executing");
        i=i+22;
        System.out.println("i is (after i+22) "+i);
        System.out.println("i+=1 executing");
        i++;
        System.out.println("i is (after i++) "+i);
    }
    public void decrement()
    {
        i--;
        System.out.println("i is "+i);
        System.out.println("i*=2 executing");
        i=i*2;
        System.out.println("i is after i*2"+i);
        System.out.println("i-=1 executing");
        i=i-1;
        System.out.println("i is after i-1 "+i);
    }
    public int value()
    {
        return i;
    } }

class ThreadA
{
    public ThreadA(final Counter c)
    {
        new Thread(new Runnable(){
            public void run()
            {
                System.out.println("Thread A …
Run Code Online (Sandbox Code Playgroud)

java multithreading volatile

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

我在哪里可以获得Eclipse-GUI代码?

在德国汉诺威参观CeBit IT-fair时,我遇到了两三个基于Eclipse GUI的应用程序(例如 Talend Open Studio).有没有人知道Eclipse GUI是否可供公众使用,如果是,如何获得最简单的访问权限?

先感谢您!

eclipse user-interface

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