我必须标记一个字符串,其中标记除以“ - ”。
String temp = in.readLine();
input_scanner = new Scanner(temp);
token_temp_token_1 = input_scanner.next();
token_temp_token_2 = input_scanner.next(" - ");
token_temp_token_3 = input_scanner.next(" - ");
System.out.println(token_temp_token_1 + " " + token_temp_token_3);
它不会打印任何内容。
答案 0 :(得分:1)
我不确定您要输入的输入以及您希望代码执行的操作,但这应该可以帮助您入门:
Scanner scanner = new Scanner(System.in);
String[] parts = scanner.nextLine().split(" - ");
System.out.println(parts[0] + " " + parts[1]);
答案 1 :(得分:0)
您可以使用以下内容:
String temp = in.readLine();
input_scanner = new Scanner(temp);
token_temp_token_1 = input_scanner.next();
token_temp_token_2 = input_scanner.skip(" - ").next();
token_temp_token_3 = input_scanner.skip(" - ").next();
System.out.println(token_temp_token_1 + " " + token_temp_token_3);
或类似的东西:
String temp = in.readLine();
input_scanner = new Scanner(temp);
String[] tokens = input_scanner.nextLine().split(" - ");
if (tokens.length > 2){
System.out.println(tokens[0] + " " + tokens[2]);
}
input_scanner.close();
答案 2 :(得分:0)
根据javadoc,方法public String next(String pattern)
的参数不是分隔符,而是与您的令牌匹配的正则表达式,它等同于:
Pattern tokenRegex = Pattern.compile(someRegex);
Matcher tokenizer = tokenRegex.matches(contentToBeTokenized);
List<String> tokens = new ArrayList<>();
while(tokenizer.find()){
String token = tokenizer.group();
tokens.add(token)
}
您应该使用someString.split(delimiter)
来分隔字符串;这将返回由分隔符分隔的字符串数组。
答案 3 :(得分:0)
这取决于您的输入和令牌。如果编码如下:
String str = "Hello World";
Scanner scanner = new Scanner(str);
System.out.println(scanner.next("Hello"));
System.out.println(scanner.next("World"));
你会看到结果。在下一行打印Hello和World。 scanner.next(字符串模式)的参数不应以&#34;开头。 &#34;