public class CompositeName extends Object implements Name
组合名称的组件被编号。 具有N个组件的组合名称的索引范围从0到但不包括N。该范围可以写为[0,N]。 最重要的组件是索引0.空复合名称没有组件。
当比较两个复合名称时,字符的大小是很重要的。
前导组件分隔符(复合名称字符串以分隔符开头)表示前导空组件(由空字符串组成的组件)。 尾部组件分隔符(复合名称字符串以分隔符结尾)表示尾部空白组件。 相邻的组件分隔符表示空组件。
Modifier | Constructor and Description |
---|---|
|
CompositeName()
构造一个新的空复合名称。
|
protected |
CompositeName(Enumeration<String> comps)
使用“comps”指定的组件构造新的组合名称实例。
|
|
CompositeName(String n)
通过使用复合名称语法(从左到右,斜杠分隔)解析字符串n来构造新的复合名称实例。
|
Modifier and Type | Method and Description |
---|---|
Name |
add(int posn, String comp)
在此复合名称中的指定位置添加单个组件。
|
Name |
add(String comp)
将单个组件添加到此组合名称的末尾。
|
Name |
addAll(int posn, Name n)
在组合名称中的指定位置添加复合名称的组件。
|
Name |
addAll(Name suffix)
将组合名称的组件按顺序添加到此组合名称的末尾。
|
Object |
clone()
生成此复合名称的副本。
|
int |
compareTo(Object obj)
将此CompositeName与指定的对象进行比较。
|
boolean |
endsWith(Name n)
确定复合名称是否是此复合名称的后缀。
|
boolean |
equals(Object obj)
确定两个复合名称是否相等。
|
String |
get(int posn)
检索此复合名称的组件。
|
Enumeration<String> |
getAll()
检索此复合名称的组件作为字符串的枚举。
|
Name |
getPrefix(int posn)
创建一个组合名称,其组件由此组合名称中组件的前缀组成。
|
Name |
getSuffix(int posn)
创建一个组合名称,其组件由此组合名称中的组件的后缀组成。
|
int |
hashCode()
计算此复合名称的哈希码。
|
boolean |
isEmpty()
确定此复合名称是否为空。
|
Object |
remove(int posn)
从此复合名称中删除组件。
|
int |
size()
检索此组合名称中的组件数。
|
boolean |
startsWith(Name n)
确定复合名称是否是此复合名称的前缀。
|
String |
toString()
生成此复合名称的字符串表示形式。
|
protected CompositeName(Enumeration<String> comps)
comps
- 包含新组合名称的组件的非空枚举。
每个元素都是String类。
枚举将用于提取其元素。
public CompositeName(String n) throws InvalidNameException
n
- 要解析的非空字符串。
InvalidNameException
- 如果n具有无效的复合名称语法。
public CompositeName()
isEmpty()
时,这样的名称将返回true。
public String toString()
public boolean equals(Object obj)
equals
在
Object
obj
- 可能要比较的空对象。
hashCode()
public int hashCode()
hashCode
在类别
Object
equals(java.lang.Object)
public int compareTo(Object obj)
如果obj为null或CompositeName的实例,则抛出ClassCastException。
对于两个复合名称相同,这意味着equals()。 如果两个复合名称相等,则返回0。
复合名称的排序遵循字符串比较的字典规则,其扩展名适用于复合名称中的所有组件。 效果就好像所有组件都按照指定的顺序排列,并且在两个阵容中应用了词典规则。 如果此复合名称比词汇“词典”小,则返回一个负数。 如果此复合名称比词典“词典”大,则返回正数。
compareTo
在界面
Comparable<Object>
compareTo
在界面
Name
obj
- 要比较的非空对象。
ClassCastException
- 如果obj不是CompositeName。
Comparable.compareTo(Object)
public Object clone()
public boolean isEmpty()
public Enumeration<String> getAll()
public String get(int posn)
get
在界面
Name
posn
- 要检索的组件的基于0的索引。
必须在[0,size())范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外。
public Name getPrefix(int posn)
getPrefix
在界面
Name
posn
- 要停止的组件的基于0的索引。
必须在[0,size()]范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外。
public Name getSuffix(int posn)
getSuffix
在界面
Name
posn
- 要启动的组件的基于0的索引。
必须在[0,size()]范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外。
public boolean startsWith(Name n)
startsWith
在界面
Name
n
- 可能要查询的null名称。
public boolean endsWith(Name n)
public Name addAll(Name suffix) throws InvalidNameException
addAll
在界面
Name
suffix
- 要添加的非零组件。
InvalidNameException
- 如果后缀不是复合名称。
public Name addAll(int posn, Name n) throws InvalidNameException
addAll
在接口
Name
n
- 要添加的非零组件。
posn
- 添加新组件的此名称中的索引。
必须在[0,size()]范围内。
InvalidNameException
- 如果n不是组合名称。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外。
public Name add(String comp) throws InvalidNameException
add
在界面
Name
comp
- 要添加的非空组件。
InvalidNameException
- 如果在名称末尾添加comp将违反名称的语法。
public Name add(int posn, String comp) throws InvalidNameException
add
在界面
Name
comp
- 要添加的非零组件。
posn
- 添加新组件的索引。
必须在[0,size()]范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外。
InvalidNameException
- 如果在指定位置添加comp将违反名称的语法。
public Object remove(int posn) throws InvalidNameException
remove
在界面
Name
posn
- 要删除的组件的索引。
必须在[0,size())范围内。
ArrayIndexOutOfBoundsException
- 如果posn在指定范围之外(包括组合名称为空的情况)。
InvalidNameException
- 如果删除组件将违反名称的语法。