为了连接,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
?问题是哪个更好,为什么?
我想创建一个具有子存储库的存储库,为此我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-*
文件夹,然后将所有文件夹分组到主存储库中。
是否可以?或者什么是最好的方法?
我发现了与 …
使用数据提供者时我们如何动态命名测试用例,例如:
如果我有一个登录测试用例,并且我想对不同的用户名和密码使用数据提供程序,其中每个用户代表一个国家,我将如何使测试的输出失败或通过但具有不同的测试用例名称,例如我应该有像这样:
loginTestUSusername pass
loginTestINusername pass
loginTestJPuserName pass
Run Code Online (Sandbox Code Playgroud)
注意方法名是loginTest,后面USusername,INusername,JPusername
是data provider的测试数据
我正在尝试使用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) 我有以下程序:
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)