Java 仅使用 charAt 连接两个字符串

标签 java string

我们的任务是编写一段代码,仅使用 charAt 连接两个字符串。所以我做了以下事情:

Scanner sc = new Scanner (System.in);
char operation = sc.nextLine().charAt(0)
String c = "concatenation";
if (operation == 'c' ) {
        System.out.println("Please enter the first string: ");
        String firstString = sc.next();
        System.out.println("Please enter the scond string: ");
        String secondString = sc.next();

        System.out.print("The result of concatenating " + firstString + " and " + secondString + " is ");
        for (int i = 0; i < firstString.length(); i++) {
            char x = firstString.charAt(i);
            System.out.print(x);
        }
        for (int i = 0; i < secondString.length(); i++) {
            char y = secondString.charAt(i);
            System.out.print(y);
        }
    }

我的老师告诉我以下内容:“所以目前你只是简单地打印,但目标是创建一个新字符串,它是 s1 和 s2 的串联......然后打印你创建的新字符串。所以使用 charAt这是一种可行的方法,但您需要一次连接一个字符,而不是一次打印一个字符。”

所以我想也许这样的东西可以工作:

String concatenated;
    for (int i = 0; i < firstString.length(); i++){
        concatenated = firstString.charAt(i);
    }

显然情况并非如此,因为类型不兼容。

所以我想问你我能做什么,仅使用 charAt 连接两个字符串。

最佳答案

您正在执行赋值,而不是串联,并且无论如何都无法将 char 分配给 String 变量。

为了连接字符,您可以使用 + 运算符(或 +=):

String concatenated = "";
for (int i = 0; i < firstString.length(); i++){
    concatenated += firstString.charAt(i);
}

或者您可以使用 StringBuilder 对象并将字符附加到其中:

StringBuilder concatenated = new StringBuilder(firstString.length()+secondString.length());
for (int i = 0; i < firstString.length(); i++){
    concatenated.append(firstString.charAt(i));
}
for (int i = 0; i < secondString.length(); i++){
    concatenated.append(secondString.charAt(i));
}
System.out.println(concatenated.toString());

这比 + 运算符更有效,因为它只生成一个 StringBuilder 对象,而 + 运算符生成一个新的 每次使用时 >String 对象。

关于Java 仅使用 charAt 连接两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46070239/

相关文章:

java - 使用Apache POI从java中的excel表中读取数据

Java:线程安全的id生成器(同步问题)

r - 如何从向量中提取最后一次出现的特定 'string'

.net - 在 .NET 中将文本文件的内容读取为字符串的最佳方法是什么?

c - fopen 的替代品,害怕从字符串中读取?

java - Apache Parquet 数据存储引擎?

java - 将文本文件中的数据输入动态数组对象时出现 NullPointerException

java - 扫描仪JAVA的某些要求

javascript - 返回字符串值

java - 连接 Java 对象数组中的字段