删除所有空格和所有 non-alphabet 个字符。小写 A-Z 的字符,将它们转换为大写
Remove all spaces and all non-alphabet characters. Characters that are A-Z in lower case, convert them to upper case
正如标题所说,我要删除所有空格和所有不是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);
}
}
}
}
使用分隔符\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);
}
您需要使用 \P{Alpha}
而不是 \P{Alnum}
。检查 this 了解更多信息。
另外,替换
System.out.println(res);
和
System.out.print(res);
这些更改后的输出:
THISISANEXAMPLEOUTPUTWITHONLYUPPERCASELETTER
正如标题所说,我要删除所有空格和所有不是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);
}
}
}
}
使用分隔符\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);
}
您需要使用 \P{Alpha}
而不是 \P{Alnum}
。检查 this 了解更多信息。
另外,替换
System.out.println(res);
和
System.out.print(res);
这些更改后的输出:
THISISANEXAMPLEOUTPUTWITHONLYUPPERCASELETTER