Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将多行字符串输入转换为大写,直到EOF?_Java - Fatal编程技术网

Java 如何将多行字符串输入转换为大写,直到EOF?

Java 如何将多行字符串输入转换为大写,直到EOF?,java,Java,我希望将多行输入转换为大写,直到EOF ctrl+d。什么可以用来打印相同的多行全大写?例如,输入和输出如下所示: import java.util.Scanner; public class Shout { public static void main(String[] args) { String str1; String str2 = ""; Scanner keyboard = new Scanner(System.in);

我希望将多行输入转换为大写,直到EOF ctrl+d。什么可以用来打印相同的多行全大写?例如,输入和输出如下所示:

import java.util.Scanner;

public class Shout {
    public static void main(String[] args) {
        String str1;
        String str2 = "";

        Scanner keyboard = new Scanner(System.in);

        StringBuilder output = new StringBuilder();

        while (keyboard.hasNextLine()) {
            str1 = keyboard.nextLine();
            StringBuilder sb = new StringBuilder(str1);
            output.append(sb.toUpperCase().toString()).append("\n");
        }
        System.out.print(output.toString());
    }
}

使用大写重复的行。

将每一行放入Hashmap,每次得到行时,检查是否在Hashmap中找到相同的字符串。如果没有,只需按正常方式打印并添加到hashmap。否则打印为大写

代码应该与此类似

car
bus
taxi
CAR
BUS
TAXI

你的代码有什么问题?简单,用大写字母写。这段代码并不理想,但应该可以工作。问题是什么?请澄清您的具体问题或添加其他详细信息,以突出显示您所需的内容。正如目前所写的,很难准确地说出你在问什么。请参阅本页以获取澄清此问题的帮助。他只想将字符串大写,如果该行是前一行的重复,则只想将其大写。
Map<String> lines = new HashMap();
while (keyboard.hasNextLine()) {
        str1 = keyboard.nextLine();
        StringBuilder sb = new StringBuilder(str1);
        if(lines.get(str1)==null){
           // not found, put to hashmap and print normally.
           lines.put(str1);
           output.append(sb.toString().append("\n");
        }else{
           // found, so this line is repetitive, print the uppercase version. 
           output.append(sb.toUpperCase().toString()).append("\n");
        }   
}