请参阅相关的.NET问题
我正在寻找一种快速简便的方法来完成与分裂完全相反的方式,以便它 ["a","b","c"]能够成为"a,b,c"
迭代数组需要添加条件(如果这不是最后一个元素,添加分隔符)或使用子字符串删除最后一个分隔符.
我确信有一种经过认证的有效方法(Apache Commons?)
您更喜欢在项目中做到这一点?
我知道这是一个新手问题,但在Java中C#的字符串操作是否相同?
具体来说,我正在谈论String.Format和String.Join.
假设,我有一个数组:
int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7};
Run Code Online (Sandbox Code Playgroud)
我需要使用分隔符连接其元素,例如," - "因此我应该得到这样的字符串:
"1 - 2 - 3 - 4 - 5 - 6 - 7"
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
给定一个字符串集合,如何在不使用外部库的情况下将它们加入普通Java中?
鉴于以下变量:
Collection<String> data = Arrays.asList("Snap", "Crackle", "Pop");
String separator = ", ";
String joined; // let's create this, shall we?
Run Code Online (Sandbox Code Playgroud)
这就是我在Guava中的表现:
joined = Joiner.on(separator).join(data);
Run Code Online (Sandbox Code Playgroud)
joined = StringUtils.join(data, separator);
Run Code Online (Sandbox Code Playgroud)
但是在简单的Java中,真的没有比这更好的方法吗?
StringBuilder sb = new StringBuilder();
for(String item : data){
if(sb.length()>0)sb.append(separator);
sb.append(item);
}
joined = sb.toString();
Run Code Online (Sandbox Code Playgroud) 有XXXUtils我可以做的地方
String s = XXXUtils.join(aList, "name", ",");
Run Code Online (Sandbox Code Playgroud)
哪个"name"是来自对象的JavaBeans属性aList.
我发现只有StringUtils具有join的方法,但它只是一个变换List<String>成一个分离String.
就像是
StringUtils.join(BeanUtils.getArrayProperty(aList, "name"), ",")
Run Code Online (Sandbox Code Playgroud)
这很快,值得使用.BeanUtils会抛出2个已检查的异常,所以我不喜欢它.
java apache-commons separator apache-stringutils apache-commons-collection
System.out.print("Please select a game: ");
for (String s : gamesArray) {
System.out.print(s + ", ");
}
Run Code Online (Sandbox Code Playgroud)
输出:
Please select a game: spin, tof, Press any key to exit...
我除外的输出:
Please select a game: spin, tof Press any key to exit...
为什么在最后一个数组项后添加另一个','?我该如何预防呢?
我正在使用Jackson来序列化/反序列化JSON对象.
我有一个Study对象的以下JSON :
{
"studyId": 324,
"patientId": 12,
"patient": {
"name": "John",
"lastName": "Doe"
}
}
Run Code Online (Sandbox Code Playgroud)
更新:不幸的是,JSON结构无法修改.这是问题的一部分.
我想将对象反序列化为以下类:
public class Study {
Integer studyId;
Patient patient;
}
Run Code Online (Sandbox Code Playgroud)
和
public class Patient {
Integer patientId;
String name;
String lastName;
}
Run Code Online (Sandbox Code Playgroud)
是否可以patientId在Patient对象中包含属性?
我能够反序列化patient对象到Patient类(对应name和lastName性质),但不能包含patientId属性.
有任何想法吗?
我有以下方法:
public static void sentence(String sen)
{
String[] array = sen.split(" ");
String[] five = Arrays.copyOfRange(Array, 0, 5);
if (Array.length < 6)
System.out.println(sen);
else
System.out.print(Arrays.toString(five));
}
Run Code Online (Sandbox Code Playgroud)
作为一个论点,我输入一个句子.如果句子超过5个单词,我只想打印出前5个单词.发生的事情是当sen> 5时的打印输出看起来像:
[word1,word2,word3,word4,word5]
我希望它看起来像是:
word1 word2 word3 word4 word5
关于如何将数组转换为正常句子格式的任何建议,如后一示例所示?
我有一个对象列表,每个对象都有一个字符串属性.例如,我有一个List<Person>,每个Person都有一个firstName属性.我想构建一个逗号分隔的引用字符串,如下所示:
'James', 'Lily', 'Michael'
Run Code Online (Sandbox Code Playgroud)
考虑到java似乎没有连接方法(此外,这比简单的分隔字符串更复杂),最简单的方法是什么?我一直在尝试编写这个代码,但我的代码变得非常混乱,我可以使用一些新的输入.
我有一个EditText给用户评论.现在我想输入限制将是500字.这意味着用户最多可以写500条评论.我该如何实现呢?请帮我.
我有一个ArrayList<String>定期添加的。我想要做的是将整个 ArrayList 转换为 aString而不进行循环。谁能告诉我可以不使用循环吗?
编辑:所以我们找到了一些解决方案,比如
list.stream().collect(Collectors.joining());
Run Code Online (Sandbox Code Playgroud)
或者
String result = String.join(",", list);
Run Code Online (Sandbox Code Playgroud)
或其他一些。现在只是为了获取知识,我提出了一个问题,哪种方式是编译器的最佳方式?