小编JUA*_*A M的帖子

String.format和StringBuilder之间的性能

为了连接,String我们经常使用StringBuilder而不是String+ String,但我们也可以String.format通过给定的语言环境,格式和参数来返回格式化的字符串.

例子:

使用StringBuilder连接字符串

String concatenateStringWithStringBuilder(String name, String lName, String nick) {
    final StringBuilder sb = new StringBuilder("Contact {");
    sb.append(", name='").append(name)
      .append(", lastName='").append(lName)
      .append(", nickName='").append(nick)
      .append('}');
    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

使用StringFormat连接字符串:

String concatenateStringWithStringFormat(String name, String lName, String nick) {
    return String.format("Contact {name=%s, lastName=%s, nickName=%s}", name, lName, nick);
}
Run Code Online (Sandbox Code Playgroud)

在性能方面,String.Format效率如何StringBuilder?哪一个更好地连接字符串,为什么?

UPDATE

我检查了类似的问题,但没有回答我的问题.到目前为止,我已经习惯StringBuilder连接字符串,我应该使用它吗?或者我应该使用String.format?问题是哪个更好,为什么?

java stringbuilder string.format

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

创建包含子存储库的存储库

我想创建一个具有子存储库的存储库,为此我sample在工作区中创建了一个文件夹:

$ cd ~/workspace/
$ mkdir samples
$ cd samples
$ pwd
~/workspace/samples
Run Code Online (Sandbox Code Playgroud)

这意味着示例文件夹将是主存储库(类似于容器),例如我希望具有以下结构:

$ mkdir sample-java
$ mkdir sample-c-plus-plus
$ mkdir sample-csharp
$ ls -l
total 3
drwxr-xr-x  juanca  staff  408 Mar 30 20:04 sample-java
drwxr-xr-x  juanca  staff  408 Mar 30 20:12 sample-c-plus-plus
drwxr-xr-x  juanca  staff  408 Mar 30 20:23 sample-csharp
Run Code Online (Sandbox Code Playgroud)

我想要在我的 github 帐户中为上面列出的每个文件夹建立一个存储库,例如:

|- samples -----------------> github.com/my-user/samples.git
    |- sample-java ---------> github.com/my-user/samples.git/sample-java.git
    |- sample-c-plus-plus --> github.com/my-user/samples.git/sample-c-plus-plus.git
    |- sample-csharp -------> github.com/my-user/samples.git/sample-csharp.git
Run Code Online (Sandbox Code Playgroud)

我希望控制每个sample-*文件夹,然后将所有文件夹分组到主存储库中。

是否可以?或者什么是最好的方法?

我发现了与 …

git github

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

使用数据提供程序时如何动态命名测试用例

使用数据提供者时我们如何动态命名测试用例,例如:

如果我有一个登录测试用例,并且我想对不同的用户名和密码使用数据提供程序,其中每个用户代表一个国家,我将如何使测试的输出失败或通过但具有不同的测试用例名称,例如我应该有像这样:

loginTestUSusername pass
loginTestINusername pass
loginTestJPuserName pass
Run Code Online (Sandbox Code Playgroud)

注意方法名是loginTest,后面USusername,INusername,JPusername是data provider的测试数据

java testng selenium dataprovider

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

JSch ChannelSftp.ls抛出nullpointer

我正在尝试使用JSch在Java中实现图形ssh浏览器。我想检索一个ChannelSftp.ls调用的结果,但是它给了我一个nullpointer异常...我检查了会话,它已打开并登录。当我打开exec的通道并发送ls命令时,我可以检索到目录内容为String。代码如下:

public Vector listContents () {
    Channel channel = null;
    ConnectionThread conn = SSHBrowser.conn;

    Session sess = conn.getSession();
    System.out.println(sess.getUserName()); //prints out the given username, not null, so the session is initialized
    try {
        channel = sess.openChannel("sftp");
    } catch (JSchException ex) {
        ex.printStackTrace();
    }
    Vector<ChannelSftp.LsEntry> result = null;

    try {

        result = ((ChannelSftp) channel).ls("/srv"); // throws nullpointer here
        for (ChannelSftp.LsEntry dir : result) {
            System.out.print(dir.getLongname());
        }

    } catch (SftpException e) {
        e.printStackTrace();
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

我得到的堆栈跟踪如下:

at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1747) …
Run Code Online (Sandbox Code Playgroud)

java jsch

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

抽象类中的Super()

我有以下程序:

public abstract class geometricFigure {
    private int dim1, dim2;

    public geometricFigure(int dim1, int dim2) {
        super();
        this.dim1 = dim1;
        this.dim2 = dim2;
    }

    public geometricFigure() {
        this.dim1 = 0;
        this.dim2 = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

我很难理解,super()参数化构造函数中的方法是做什么的.我在这里可以看到这个抽象类没有扩展任何类,我很难理解super()它所调用的超类是什么方法.

顺便说一句.这个类由另外两个名为Echilateral Triangle和的类扩展Circle.

public class echilateralTriangle extends geometricFigure {
    public echilateralTriangle() {
        super(1, 1);
    }

    public echilateralTriangle(int dim1, int dim2) {
        super(dim1, dim2);
    }
}
Run Code Online (Sandbox Code Playgroud)

圈级:

public class Circle extends geometricFigure {
    public Circle() {
        super(1, 1); …
Run Code Online (Sandbox Code Playgroud)

java abstract-class super

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