目标是创建一个String toUppercase方法(如果不存在)。我掌握了大部分代码,但是如何返回在for循环中创建的字符串?
public String toUpperCase(String str)
{
for (int i = 0; i > str.length; i++){
char a = str.charAt(i);
char b = Character.toUpperCase(a);
String t = Character.toString(b);
}
return t;
}
答案 0 :(得分:2)
在循环外部声明t
,并在循环内部分配+=
。
public String toUpperCase(String str)
{
String t = "";
for (int i = 0; i < str.length(); i++){
char a = str.charAt(i);
char b = Character.toUpperCase(a);
t += Character.toString(b);
}
return t;
}
这是在不存在这种方法的情况下要执行的操作。同样,下一步将是照顾性能,并且可能会使用StringBuilder
来影响堆。但是所有这些基本操作在java.lang.String
中已经可用,为什么要重新发明轮子呢?
答案 1 :(得分:1)
您必须在循环外部创建一个空字符串,然后使用+=
示例:
public String toUpperCase (String str) {
String res = "";
for (int i = 0; i < str.length(); i++) {
char a = str.charAt(i);
char b = Character.toUpperCase(a);
res += Character.toString(b);
}
return res;
}
答案 2 :(得分:1)
您是否要编写此功能?
const newOrderList = orders.reduce((acc, order) => {
const { orderId } = order;
const orderPayed = ordersPayed.find((orderPayed) => orderPayed.orderId === orderId);
if (orderPayed) {
return [
...acc,
{
...order,
...orderPayed,
}
];
}
return [
...acc,
{
...order,
},
];
}, []);
一个简单的:
public String toUpperCase(String str)
{
String t = "";
for (int i = 0; i < str.length(); i++){
char a = str.charAt(i);
char b = Character.toUpperCase(a);
t = t + Character.toString(b);
}
return t;
}
还不够吗?
答案 3 :(得分:0)
您需要将累加器(t
)移到循环外,并使用空值对其进行初始化。但是,我将从制作方法static
开始(因为它不使用任何实例数据)。接下来,我希望使用StringBuilder
作为累加器。我将使用String.toCharArray()
,以便可以使用增强的for-each循环。喜欢,
public static String toUpperCase(String str) {
StringBuilder sb = new StringBuilder();
for (char ch : str.toCharArray()) {
sb.append(Character.toUpperCase(ch));
}
return sb.toString();
}