我现在正在进行的项目是一个互动项目。它专注于学习语言。我希望用户能够输入数据,并希望控制台根据用户写的内容回复设定的句子。
我被困在"我的名字是"。我整个上午一直在研究scanner.skip
函数,但似乎无法找到我需要的信息,如何让它做我想做的事情。我希望用户写"我的名字是[姓名]。"然后我想让控制台将这个答案分成两个单独的字符串,"我的名字是"和" [姓名]"。
我希望能够检查一下"我的名字是"完全匹配"我的名字是",而忽略了" [name]"碰巧是。我希望能够访问" [名称]"但是,稍后,控制台可以使用输入的名称与用户通话。我将如何使用scanner.skip
函数执行此操作?这甚至是正确使用的功能吗?
答案 0 :(得分:1)
我使用子字符串:
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
System.out.printf("line: '%s'%n", line);
if (line.startsWith("My name is ")) {
String name = line.substring("My name is ".length());
System.out.printf("name: '%s'%n", name);
} else {
// print error or something
System.out.println("Error: line has to start with 'My name is ' string.");
}
}
}
使用BufferedReader,因为它更快,在这种情况下,它对以后的处理并不重要......
答案 1 :(得分:0)
public class Test {
public static void main(String[] args) {
String var = "My Name Is Uly";
String name = var.replace("My Name Is ", "");
String firsPart = var.replace(" " + name, "");
System.out.println(firsPart + " " + name);
}
}
答案 2 :(得分:0)
如果您愿意提供介绍性文字("我的名字是:")那么你可以得到这样的名字:
cn = System.console();
name = cn.readLine("My name is ");
System.out.println("Name entered : " + name);
或者您也可以解析字符串:
cn = System.console();
name = cn.readLine();
//n= no of chars in your text :My name is
name = name.substring(n);
System.out.println("Name entered : " + name );
答案 3 :(得分:0)
您不需要skip
。只需阅读整个强大的,可用作String
类成员的使用函数,检查它是否以&#34开头;我的名字是",如果是,则从子串开始和结束该前缀(空格为+1),并将其存储在vvariable中以便稍后用作名称。
答案 4 :(得分:0)
public class test {
public static void main(String args[]) {
Scanner sc;
do {
sc = new Scanner(System.in);
String s = sc.nextLine();
if (s.equalsIgnoreCase("exit")) {
System.out.println("Bye");
break;
}else if(s.length()>11 && s.substring(0,10).equalsIgnoreCase("my name is")) {
String name = s.substring(11);
System.out.println("your name is:"+name);
} else {
System.out.println("Sorry incorrect answer ... ");
}
}while (true);
}
}
答案 5 :(得分:0)
import java.util.Scanner;
public class Name{
public static void main(String [] args){
Scanner input = new Scanner(System.in);
String str = input.nextLine();
if(str.indexOf("My name is ") >= 0){
String name = str.substring(str.indexOf("My name is ")+11, str.length());
System.out.println("Your name is: "+name);
}
else
System.out.println("Error: Could not find name!");
}
}
测试输入的String是否具有&#34的索引;我的名字是"然后将String分解为子字符串以从输入中提取名称。