JOptionPane 类
导入包1 import javax.swing.JOptionPane;
showMessageDialog1 JOptionPane.showMessageDialog(null , x, y, JOptionPane.INFORMATION_MESSAGE);
第一个参数总是 null
x
是要显示的字符串
y
是消息对话框的标题
JOptionPane.INFORMATION_MESSAGE
是图标
showInputDialog1 String string = JOptionPane.showMessageDialog(null , x, y, JOptionPane.INFORMATION_MESSAGE);
x
是提示字符串
y
是标题字符串
返回的是字符串, 若需要其它类型需要转换, 如 1 int intValue = Integer.parseInt(string);
String
创建及使用 String
类有很多构造方法, 例如接受字符串, 字符数组等.
1 2 3 String str = new String ("my name is ljguo" );char [] charArray = {'l' , 'j' , 'g' , 'u' , 'o' };String str = new String (charArray);
诸如 "ljguo"
这种称为字符串直接量 , java
为了提高效率和节约内存, 对具有相同字符串序列的字符串直接量使用同一实例(对象), 也即
1 2 3 4 5 6 7 String str1 = "ljguo" ;String str2 = "ljguo" ;String str3 = new String ("ljguo" );
这是因为 str1
和 str2
在用 ==
进行比较的时候比较的是引用值(类似于地址), 而二者指向同一对象, 故它们的引用值是相等的.String
类还提供了一些方法
equals(s: String): boolean
比较两个字符串对象所指的字符串是否相等, 继承自 Object
.
equalsIgnoreCase(s: String): boolean
忽略大小写的 equals
.
compareTo(s: String): int
比较字符串, 返回一个 int
.
startsWith(prefix: String): boolean
, 返回一个 boolean
, 用于检测该字符串是否以 prefix
为前缀.
endsWith(suffix: String): boolean
, 返回一个 boolean
, 用于检测该字符串是否以 suffix
为后缀. 此外还有一些方法, 例如: toLowerCase
, replace
, replaceFirst
, replaceAll
, split
, matches
等, 他们都支持以正则表达式 进行匹配, 更多的方法参考API.
类型转换
Integer.parseInt(s: String): int
将字符串转换为整数, 这是Integer
类提供的方法, 其他基本类型对应的包装类也都提供了对应的方法
valueOf()
将其他基本数据转换为字符串.
toCharArray()
将字符串转换为字符数组.
StringBuilder和StringBuffer类 这两个类用来代替 String
类, 处理可变长字符串.
1 2 3 StringBuffer str1 = new StringBuffer (); StringBuffer str2 = new StringBuffer (10 ); StringBuffer str3 = new StringBuffer ("ljguo" );
方法
append(d: char[])
添加 char 数组
append(s: String)
添加字符串
append(d: char[], offset: int, length: int)
append(v: aPrimetiveType)
添加基本类型
insert()
, charAt()
, deleteCharAt()
, reverse()
等
capacity()
返回生成器容量, 区分 length()
trimTosize()
可以将容量降低到实际长度(用于节省内存)
Students 类(待更新) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 package Students;public class Students { private String[] elements; private int STUDENTS_SIZE = 5 ; private int numberOfStudents = 0 ; public Students () { elements = new String [STUDENTS_SIZE]; } public void push (String name) { if (numberOfStudents >= STUDENTS_SIZE) { String[] temp = new String [2 * STUDENTS_SIZE]; STUDENTS_SIZE *= 2 ; System.arraycopy(elements, 0 , temp, 0 , elements.length); elements = temp; } elements[numberOfStudents++] = name; } public int getNumberOfStudents () { return numberOfStudents; } public String getStudent (int index) { if (index < numberOfStudents){ return elements[index]; }else { throw new ArrayIndexOutOfBoundsException ("Index " + index + " out of bounds for length " + numberOfStudents); } } public String toString () { StringBuilder tem = new StringBuilder (); for (int i = 0 ; i < numberOfStudents; i++) { if (i < numberOfStudents - 1 ) tem.append(elements[i]).append("," ); else tem.append(elements[i]); } return "[" + tem +"]" ; } public String pop () { return elements[--numberOfStudents]; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import Students.*;import java.util.ArrayList;import java.util.Date;public class StudentsTest { public static void main (String[] args) { Students st = new Students (); st.push("ljguo" ); st.push("张三" ); st.push("李四" ); st.push("王二麻子" ); st.push("王八蛋" ); st.push("狗头" ); st.push("二蛋子" ); System.out.println(st.getStudent(5 )); System.out.println(st.getNumberOfStudents()); System.out.println(st.pop()); System.out.println(st); } }
1 2 3 4 狗头 7 二蛋子 [ljguo,张三,李四,王二麻子,王八蛋,狗头]