Java 尝试按空格拆分用户输入字符串
尝试拆分一个字符串并输出用户输入的倒数第二个单词,但是.split()似乎只将单个字符串输出到数组中,所以它不起作用Java 尝试按空格拆分用户输入字符串,java,Java,尝试拆分一个字符串并输出用户输入的倒数第二个单词,但是.split()似乎只将单个字符串输出到数组中,所以它不起作用 import java.util.*; public class Random_Exercises_no60 { public static void main(String[] args) { Scanner sc = new Scanner (System.in); System.out.println("Please ente
import java.util.*;
public class Random_Exercises_no60 {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.println("Please enter a sentence.");
String sentence = sc.next();
String[] words = sentence.split("\\s+");
System.out.println(words.length); // Just to check the array
System.out.println("Penultimate word " + words[words.length - 2]);
}
}
问题不在于
split
方法,而是应该使用nextLine
而不是next
:
String sentence = sc.nextLine();
问题不在于
split
方法,而是应该使用nextLine
而不是next
:
String sentence = sc.nextLine();
@Aomine的答案应该可以解决您的问题。如果您确实想直接使用
Scanner#next()
,那么您也可以尝试将扫描仪的分隔符设置为换行符:
Scanner sc = new Scanner (System.in);
sc.useDelimiter(Pattern.compile("\\r?\\n"));
然后,调用
Scanner#next()
将默认返回下一整行。由@Aomine给出的答案将解决您的问题。如果您确实想直接使用Scanner#next()
,那么您也可以尝试将扫描仪的分隔符设置为换行符:
Scanner sc = new Scanner (System.in);
sc.useDelimiter(Pattern.compile("\\r?\\n"));
然后,调用
Scanner#next()
应默认返回下一整行。您可以使用空格正则表达式
str=“Hello Split me”;
String[]splited=str.split(\\s+)代码>您可以使用空白正则表达式
str=“Hello Split me”;
String[]splited=str.split(\\s+)代码>拆分工作正常。从控制台读取信息是正确的。下面的更改应该有效
public class Random_Exercises_no60 {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.println("Please enter a sentence.");
String sentence = sc.nextLine();
String[] words = sentence.split("\\s+");
System.out.println(words.length); // Just to check the array
for (String currentWord : words ) {
System.out.println("The current word is" + currentWord);
}
}}
拆分工作正常。从控制台读取信息是正确的。下面的更改应该有效
public class Random_Exercises_no60 {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.println("Please enter a sentence.");
String sentence = sc.nextLine();
String[] words = sentence.split("\\s+");
System.out.println(words.length); // Just to check the array
for (String currentWord : words ) {
System.out.println("The current word is" + currentWord);
}
}}
但是nextLine的问题是,如果我们想接受两个输入,它会跳过第一个输入,然后接受第二个输入。这就是我现在面临的问题,如果我使用next,所以split不工作,如果我使用nextLine,所以它不接受第一个输入,但是nextLine的问题是,如果我们要接受两个输入,它会跳过第一个输入,接受第二个输入。这就是我现在面临的问题,如果我使用next所以split不工作,如果我使用nextLine所以它不接受第一个输入