返回在for循环中创建的字符串

时间:2018-09-16 12:45:01

标签: java for-loop return

目标是创建一个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;
}

4 个答案:

答案 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();
}