【问题标题】:Remove all spaces and all non-alphabet characters. Characters that are A-Z in lower case, convert them to upper case删除所有空格和所有非字母字符。小写 A-Z 的字符,将它们转换为大写
【发布时间】:2020-07-19 21:47:41
【问题描述】:

正如标题所说,我想删除所有空格和所有不是 A-Z 的字符。如果有小写字符,则将它们转换为大写。 我想要的输出是:“THISISANEXAMPLEOUTPUTWITHONLYUPPERCASELETTER” 如何修复我的代码?

```
Here is what I have for the output right now:
 
THISISANEX
AMPLEOUTPUT
WITH
ONL
Y
UPPERCASELE
TT
E
R
123
```

---------示例文件------------

  

     This is an Ex
    
    amPle       outP&ut 
    
    
    
    . WiTH 
    
    On l
    
    Y
    Uppercase Le
    
    @
    Tt
    
    E
    R
    !!!!
    123
    
    ^

我的代码:

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.Scanner;
    
    public class Test {
        public static void main(String[] args) throws FileNotFoundException {
            Scanner file = new Scanner(new File("Example.txt"));
    
            while (file.hasNextLine()) {
                String input = file.nextLine();
    
                if (!input.isEmpty()) {
                    String res = input.toUpperCase().replaceAll("\\P{Alnum}", "");
                    System.out.println(res);
                }
            }
        }
    }

【问题讨论】:

    标签: java file java.util.scanner uppercase replaceall


    【解决方案1】:

    使用分隔符\A 一次读取整个文件。要替换所有非大写字符,请使用模式[^A-Z]

    Scanner file = new Scanner(new File("Example.txt"));
    file.useDelimiter("\\A");
    if(file.hasNext()) {
        final String input = file.next();
        final String converted = input.toUpperCase().replaceAll("[^A-Z]", "");
        System.out.print(converted);
    }
    

    Demo!

    【讨论】:

    • println -> print?
    • @saka1029 当然。不过,这里并没有什么不同,因为整个文件是在单个令牌中读取的。
    【解决方案2】:

    您需要使用\\P{Alpha} 而不是\\P{Alnum}。更多信息请查看this

    另外,替换

    System.out.println(res);
    

    System.out.print(res);
    

    这些更改后的输出:

    THISISANEXAMPLEOUTPUTWITHONLYUPPERCASELETTER
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 2020-12-05
      • 2017-08-26
      • 2011-06-01
      • 2011-01-16
      相关资源
      最近更新 更多