如何在Java中使用split String重构名称?

时间:2017-11-19 13:23:20

标签: java string error-handling split

首先关于我的项目的一些信息, 我正在执行一个教程任务,主要目标是学习如何处理错误, 但是我还没有那个部分,我正在建立主要课程。 这就是我需要一些帮助和指导,(但错误应该出现并被发现 这样我以后就可以学会修复它们,但这不是主要问题,只是信息。) 这是我完成的3个课程。 学生有两个私人领域:姓名和CourseCollection课程。 带有两个字段的名称字符串firstName和String surname。 带ArrayList课程的CourseCollection。

(信息:稍后,我将使用类UserDatabase来收集和加载学生集合, + class DatavaseFormatException将表示错误,但我认为首先完成这3个类会更容易吗?纠正我,如果 我错了。)

问题:我需要一些关于课程名称的帮助,我不认为我的工作是正确的。 我的主要问题是方法String encode和构造函数Name(String encodedIdentity) 我希望在哪里返回名称,用a分隔;这就是我所拥有的

enter code here
public class Name
//instanciating the persons first and last name as Strings.
private String firstName;
private String surname;

/**
 * Constructor for objects of class Name- setting the text values for a name
 */ 
public Name(String firstName, String surname)
{
firstName = this.firstName;
surname = this.surname;
}


/**
 * Constructor for objects of class Name- reconstructing the fields
 * from a coded name
 */
public Name(String encodedIdentity)
{
//Here, the name is supposed to be coded as a text value, with the first
//and last names split with a ;
this.encodedIdentity=encodedIdentity;
//I am getting my first error here
}

//姓氏和姓氏的吸气者

/**
 * This method will return the name, with the first and last name split
 * by a ;
 */
public String encode()
{
    //Could I use a split String here? If so how?
    return firstName + ";" + surname;
}

}

我可以保证我的工作需要进一步的帮助。我发现,提前谢谢 StackOverflow上的人非常有帮助,因为我没有人(除了我的书) 寻求帮助。 (我知道你们不是免费的老师。但如果有人愿意在这之外帮助我,我会非常感激。 (对不起,如果不允许请求!))

编辑:谢谢你们,我的班级正在编译。我不知道如何测试它,但这就是我现在所拥有的。它看起来是否正确?

 public class Name

{

/**
 * Constructor for objects of class Name- setting the text values for a name
 */ 
public Name(String firstName, String surname)
{
  this.firstName = firstName;
  this.surname = surname;

}

/**
 * Constructor for objects of class Name- reconstructing the fields
 * from a coded name
 */
public Name(String encodedIdentity)
{
String names = firstName + surname;
String[] fullname = names.split( "\\;");
if(fullname.length != 2 )
{
System.out.println(fullname);
}
}


/**
 * Getting the firstname of the person
 * @return firstName
 */
public String getFirstName() 
{
    return firstName;
}

/**
 * Getting the surname of the person
 * @return surname
 */
public String getSurname()
{
    return surname;
}

/**
 * This method will return the name, with the first and last name split
 * by a ;
 */
public String encode()
{
String encode = (firstName + ";" + surname);
return encode;
}

}

2 个答案:

答案 0 :(得分:0)

如果您获得“编码ID”,请将其拆分以获取名称:

public Name(String encodedIdentity){
    String[] names = split( ";", encodedIdentity );
    if( names.length != 2 ) throw new IllegalArgumentError("...");
    firstName = names[0];
    surname = names[1];
}

一个不存储可以指定对象属性的所有变体。因此,不应该有字段encodedIdentity。

答案 1 :(得分:0)

首先使用两个字段更正您的名称构造函数 替换这个

$str = "SELECT name FROM `student_info` WHERE code='$code'"; 
$name = $link->query($str) or die(mysqli_error($link)); 

public Name(String firstName, String surname)
{
 firstName = this.firstName;
 surname = this.surname;
}

此外,您可以在此处从控制台粘贴错误吗?这样就可以更容易地找到确切的问题。