📄 record.java
字号:
public class Record implements Comparable
{
public static final int NAME_LENGTH = 27;
public static final int COUNTRY_LENGTH = 27;
public static final int ALTITUDE_LENGTH = 6;
public static final int RECORD_SIZE = NAME_LENGTH + COUNTRY_LENGTH + ALTITUDE_LENGTH;
/**
* Mountain name
*/
private char[] name;
/**
* Country
*/
private char[] country;
/**
* Altitude
*/
private char[] altitude;
/**
* Creates empty arrays
*/
private void initArrays()
{
this.name = new char[NAME_LENGTH];
this.country = new char[COUNTRY_LENGTH];
this.altitude = new char[ALTITUDE_LENGTH];
}
/**
* Constructs a new Record.
*/
public Record()
{
initArrays();
}
/**
* Constructs a new Record with initial data.
*/
public Record(char[] name, char[] country, char[] altitude)
{
initArrays();
setName(new String(name) + '\0');
setCountry(new String(country) + '\0');
setAltitude(new String(altitude) + '\0');
}
/**
* Getter for property 'name'.
*
* @return Value for property 'name'.
*/
public char[] getName()
{
return name;
}
/**
* Setter for property 'name'.
*
* @param name Value to set for property 'name'.
*/
public void setName(String name)
{
System.arraycopy(name.toCharArray(), 0, this.name, 0, Math.min(name.length(), NAME_LENGTH));
}
/**
* Getter for property 'country'.
*
* @return Value for property 'country'.
*/
public char[] getCountry()
{
return country;
}
/**
* Setter for property 'country'.
*
* @param country Value to set for property 'country'.
*/
public void setCountry(String country)
{
System.arraycopy(country.toCharArray(), 0, this.country, 0, Math.min(country.length(), COUNTRY_LENGTH));
}
/**
* Getter for property 'altitude'.
*
* @return Value for property 'altitude'.
*/
public char[] getAltitude()
{
return altitude;
}
/**
* Setter for property 'altitude'.
*
* @param altitude Value to set for property 'altitude'.
*/
public void setAltitude(String altitude)
{
System.arraycopy(altitude.toCharArray(), 0, this.altitude, 0, Math.min(altitude.length(), ALTITUDE_LENGTH));
}
/**
* Converts all object fields into char array
*
* @return char array
*/
public char[] convertToData()
{
StringBuilder sb = new StringBuilder();
sb.append(getName());
sb.setCharAt(sb.length() - 1, '\0');
sb.append(getCountry());
sb.setCharAt(sb.length() - 1, '\0');
sb.append(getAltitude());
sb.setCharAt(sb.length() - 1, '\0');
return sb.toString().toCharArray();
}
/**
* Parses file, read from file into object fields.
*
* @param dataStr - string from file
*/
public void parseFromFile(String dataStr)
{
int i = dataStr.indexOf('#');
String name = dataStr.substring(0, i);
int j = dataStr.indexOf('#', i + 1);
String country = dataStr.substring(i + 1, j);
String altitude = dataStr.substring(j + 1, dataStr.length());
setName(name);
setCountry(country);
setAltitude(altitude);
}
/**
* Converts char array into object fields
*
* @return char array
*/
public void parseFromData(char[] data)
{
String dataStr = new String(data);
String name = dataStr.substring(0, NAME_LENGTH);
String country = dataStr.substring(NAME_LENGTH, COUNTRY_LENGTH + NAME_LENGTH);
String altitude = dataStr.substring(COUNTRY_LENGTH + NAME_LENGTH, ALTITUDE_LENGTH + COUNTRY_LENGTH + NAME_LENGTH);
setName(name);
setCountry(country);
setAltitude(altitude);
}
/**
* Compares 2 Records by name, used for sorting (see Comparable interface documentation)
*/
public int compareTo(Object o)
{
String thisName = new String(this.getName());
Record thatObj = (Record) o;
String thatName = new String(thatObj.getName());
return thisName.compareTo(thatName);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -