本文目录一览:
java字符串拼接的几种方式
String类的方法:
①利用运算符"+"
②public String concat(String str)进行字符串的拼接操作
StringBuffer的方法:
①public StringBuffer append(String str)将str添加到当前字符串缓冲区的字符序列的末尾
②public StringBuffer insert(int offset,String str)在当前字符串缓冲区的字符序列的下标
索引offset插入str。如果offset等于旧长度,则str添加在字符串缓冲区的尾部
如图所示
Java数组拼接字符串?
public class Test {
public static void main(String[] args){
String[] str={"a","b","c","d","e","f","g","h","i"};//定义字符串数组
method(str);
}
private static void method(String[] s){
if(s==null)
return;
StringBuffer sBuffer=new StringBuffer();
for(int i=0;is.length;i++){//将数组拼接成字符串
sBuffer.append(s[i]);
}
System.out.println("字符串长度:"+sBuffer.length());
System.out.println("拼接的字符串:"+sBuffer.toString());
}
}
java字符串的拼接
import java.util.Scanner;
public class dd {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //声明输入对象
System.out.println("请输入第一个字符串:") ;//打印友好提示
String first = sc.next(); //阻塞,等待输入第一个字符串
System.out.println("请输入第一个字符串:"); //打印友好提示
String second = sc.next(); //阻塞,等待输入第二个字符串
String s = first+second; //进行拼接
System.out.println("您输入的字符串拼接后的结果为:"+s); //打印拼接结果
}
}
纯手打,求给分!绝对妥妥的!
这样可以么?
java字符串拼接
不是指向同一个对象的。
假设再有个语句,String e = "test3";因为String是final的,不可修改,所以可以把e看成常量。
当再遇到String d="test"+"3"时,编译器在这里做了优化,把这条语句优化为String d="test3",由于存在一个相同的对象e,所以d也指向了e.
所以d、e是同一个对象。
而编译器在处理String c=a+b时,认为是两个变量相加,不会做优化。所以c,d不是同一个对象。
如果将a,b定义为
final String a = "test";
final String b="3";
这时String c=a+b就变成了常量相加,所以编译器会对其进行优化,即这时c,d就相等了
ps:推荐楼主一本书《深入java虚拟机》,对java的底层机制有很好的介绍。
java8中如何将多个集合的数据拼接成一个统一的流
java8中stream的提供了一个拼接流的方法Stream.concat,可以将两个stream拼接成一个stream, 保持了两个stream中的元素顺序。
那么如果我们需要对多个集合中的元素拼接成一个stream来统一处理,可以怎么做呢?
比如有三个CollectionString c1, c2, c3.
方法一,使用Stream.concat方法来拼接,可以使用一个for循环来处理。
private static StreamString concat1(ListCollectionString collections) {
Stream result = Stream.empty();
for (CollectionString strings : collections) {
result = Stream.concat(result, strings.stream());
}
return result;
}
方法二,使用flatMap方法,将集合变成stream, 再压平
private static StreamString concat2(ListCollectionString collections) {
return collections.stream()
.flatMap(Collection::stream);
}
对于不同集合类型的数据,如何做成一个统一的流?还是可以使用flatMap方法来做
方法三:
private static StreamString concat3(ListString s1,String[] s2, SetString s3) {
return Stream.of(s1.stream(), Arrays.stream(s2), s3.stream())
.flatMap(Function.identity());
}
方法三和方法二相比,可以使用不同类型的集合类型来拼接流,方法二在拥有共同基类的情况下使用会显得简洁很多。
JAVA如何拼接数字
public class IntTest {
static int joint(int x, int y) {
// 为提高字符串拼接的效率,使用StringBuilder而不使用String
StringBuilder sb = new StringBuilder();
sb = sb.append(x);// 在字符串结尾添加入x
sb = sb.append(y);// 在字符串结尾添加入y
int result = -1;
try {
result = Integer.valueOf(sb.toString());// 将得到的字符串转为int类型
} catch (NumberFormatException e) {
}
// 返回-1表示操作失败
return result;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int result = joint(2, 4);// 调用函数
System.err.println(result);// 测试结果
}
}