JAVA中查找关于字符串查找的函数

sphinx135 2003-05-27 11:19:56
小弟刚入门,不知JAVA中用于在字符串中查找特定字符或字符串的函数是什么,即类似C的STRCHR或STRSTR等,望高人赐教。
另:我做一个科学计算器的APPLET,不知如何在显示结果的文本框中从右到左显示,请一并赐教。
每个问题40分。
...全文
6254 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sphinx135 2003-05-29
  • 打赏
  • 举报
回复
感谢helpall() ,问题已解决。
后面就给分。
我还想请教一下第二个问题,关于如何从右开始显示,就象真正的计算器一样,在文本框中从右开始向左显示?
sphinx135 2003-05-28
  • 打赏
  • 举报
回复
刚来看到回复,还没有试过
我试试看先
sphinx135 2003-05-27
  • 打赏
  • 举报
回复
感谢大漠孤烟中,能不能也讲讲第二个问题
caoze 2003-05-27
  • 打赏
  • 举报
回复


字串与字元

文字字串是一个相当基本且经常被使用到的资料型态,然而在 Java 中字串不象 char、int 与 float 一样是个基本资料型态,而是使用 java.lang.String 类别来加以表示,该类别定义了许多有用的方法来操作字串。String 物件是固定不变的(immutable):一旦一个 String 物件被建立了,则没有任何方法可以改变它所代表的文字,因此,每个运作字串的方法会传回一个新的 String 物件,而所修正过后的字串便是储存在此新物件里。

以下的程式码展示了你可以对字串所执行的运作:

// 建立字串
String s = "Now"; // String 物件有个特殊的写法
String t = s + " is the time."; // 使用 + 运算子来串连字串
String t1 = s + " " + 23.4; // + 将其它值转换为字串
t1 = String.valueOf('c'); // 从字元值获得对应的字串
t1 = String.valueOf(42); // 获得整数或其他任何数值的字串版本
t1 = Object.toString(); // 使用 toString() 将物件转换为字串

// 字串长度
int len = t.length(); // 字串中的字元数:16

// 字串中的子字串
String sub = t.substring(4); // 传回从 char 4 到最后的子字串:"is the time."
sub = t.substring(4, 6); // 传回 chars 4 与 5:"is"
sub = t.substring(0, 3); // 传回 chars 0 到 2:"Now"
sub = t.substring(x, y); // 传回从位置 x 到 y-1 间的子字串
int numchars = sub.length(); // 子字串的长度永远是 (y-x)

// 从一个字串中撷取(extract)出字元
char c = t.charAt(2); // 取得 t 的第三个字元:w
char[] ca = t.toCharArray(); // 将字串转换为一个字元阵列
t.getChars(0, 3, ca, 1); // 将 t 中的前三个字元放到 ca[1] 到 ca[3] 中

// 大小写转换
String caps = t.toUpperCase(); // 转换为大写
String lower = t.toLowerCase(); // 转换为小写

// 字串比较
boolean b1 = t.equals("hello"); // 传回 flase:两字串并不相等
boolean b2 = t.equalsIgnoreCase(caps); // 忽略大小写的字串比较:true
boolean b3 = t.startsWith("Now"); // 传回 true
boolean b4 = t.endsWith("time."); // 传回 true
int r1 = s.compareTo("Pow"); // 传回值 <0:s 在"Pow"之前
int r2 = s.compareTo("Now"); // 传回值 0:两字串相等
int r3 = s.compareTo("Mow"); // 传回值 >0:s 在"Mow"之后
r1 = s.compareToIgnoreCase("pow"); // 传回值 <0(Java 1.2 之后才支援)

// 搜寻字元与子字串
int pos = t.indexOf('i'); // 'i' 的位置:4
pos = t.indexOf('i', pos + 1); // 下一个 'i' 的位置:12
pos = t.indexOf('i', pos + 1); // 字串中已经没有 'i' 了,传回 -1
pos = t.lastIndexOf('i'); // 字串中最后一个 'i' 的位置:12
pos = t.lastIndexOf('i', pos - 1); // 从 char 11 开始往前搜寻 'i'

pos = t.indexOf("is"); // 搜寻子字串:传回 4
pos = t.indexOf("is", pos + 1); // 只出现一次:传回 -1
pos = t.lastIndexOf("the"); // 由后往前搜寻字串
String noun = t.substring(pos + 4); // 撷取出 "the" 之后的字串

// 将某个字元实体转换为另一个字元
String exclaim = t.replace('.', '!'); // 只能与字元一起使用,不能与子字串一起使用

// 将字串最前面的与最后面的空白删除
String noextraspaces = t.trim();

// 使用 intern() 获得独有的字串实体
String s1 = s.intern(); // 传回 s1,相等于 s
String s2 = "Now".intern(); // 传回 s2,相等于 "Now"
boolean equals = (s1 == s2); // 以 == 测试 s1、s2 是否相等
sphinx135 2003-05-27
  • 打赏
  • 举报
回复
indexOf我试过了,不知为何没用
我的源程序是这样的:
if(e.getSource().equals(point))
{
String temp;
temp = result.getText();
if(temp.indexOf(".") == 0)
result.setText(result.getText() + ".");
else
result.setText(result.getText());
}
意思是在计算器的APPLET中如果按下point-即小数点按纽,就检查输出中是否已经有过小数点出现,如有就不再显示。但是用indexOf这样写了没用,结果无论输出文本框中有没有小数点,按下小数点按钮都不再显示了。
helpall 2003-05-27
  • 打赏
  • 举报
回复
"Hello World".indexOf("l"); // = 2
雨花石 2003-05-27
  • 打赏
  • 举报
回复
在字符串操作方面最好用正则
helpall 2003-05-27
  • 打赏
  • 举报
回复
"Hello World".indexOf("3"); // = -1
helpall 2003-05-27
  • 打赏
  • 举报
回复
String temp = result.getText();
if(temp.indexOf(".") == -1) // no point
...
else // there is a point
...
你的做法可能倒了.
if(temp.indexOf(".") == 0) 的意思是: 如果temp的第一位是"."时...

62,617

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧