180分高分,求解一个替换问题!谢谢!急!!

jk3278jk 2004-10-25 11:34:18
要求实现:

String str ="中国123abc中国";

实现结果为: "中国 123abc 中国"


就是将英文aciis码小于128的字串与中文之间用空格隔开。

如果实现?急。。 解决后立即给分。
...全文
109 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackkui 2004-10-25
  • 打赏
  • 举报
回复
用正则表达式
这个表达式可以得到所有的ASCII的字符串数组,不过有的为空,要去掉
String[] temp1 = str.split("[^\\p{ASCII}]");
这个表达式得到所有的非ASCII的字符串数组,俄有时去掉所有的空字符串
String[] temp2 = str.split("[(\\p{ASCII})+]");

然后把祛除空后的字符串数组,进行连接就行了,他们肯定是间隔为一的
连接时添加上相应的空格就行了吧.
baijsp 2004-10-25
  • 打赏
  • 举报
回复
靠!楼主说话还是算话的呀!哈哈
playboylee 2004-10-25
  • 打赏
  • 举报
回复
递归第一个与第二个字符是否在大于128,如果是的话,中间加空格.细节问题慢慢来。。。顶
j2nix 2004-10-25
  • 打赏
  • 举报
回复
class Test
{
public static void main(String[] args)
{
String str =args[0];
String sb = "" + str.charAt(0);
char c1;
char c2;
for (int i=1; i<str.length(); i++)
{
c1 = str.charAt(i-1);
c2 = str.charAt(i);
if ((c1 - 128) * (c2-128) < 0)
{
sb = sb + " " + c2;
}
else
sb = sb + c2;
}
System.out.println(sb);
}
}

以上运行性能很差,只是想说明思路。
baijsp 2004-10-25
  • 打赏
  • 举报
回复
楼主的信誉分太低了,不知道你是不是说话算数的人!呵呵
tomuno 2004-10-25
  • 打赏
  • 举报
回复
输入时分成两个区域可以么?
边城狂人 2004-10-25
  • 打赏
  • 举报
回复
/*
* @(#) Test.java
* Create By James Fancy
*/
package jamesfancy;

public class Test {

public static String convert(String s) {
if (s.length() < 1) {
return s;
}

StringBuffer buffer = new StringBuffer(s);
boolean isLetter = buffer.charAt(0) < 256;

for (int i = 1; i < buffer.length(); ++i) {
char ch = buffer.charAt(i);
if ((ch < 256) ^ isLetter) {
buffer.insert(i, ' ');
isLetter = !isLetter;
}
}

return buffer.toString();
}

public static void test() {
String str = "中国123abc中国a";
System.out.println(convert(str));
}

public static void main(String[] args) {
test();
}
}
fireredfox 2004-10-25
  • 打赏
  • 举报
回复
那就挨个找了,这一次的和上一次的比较,满足条件就插入空格。
____________________________________________________________-

同意

PS:怎么楼主的信誉才5阿,低的可怜的说!
hsdxhc 2004-10-25
  • 打赏
  • 举报
回复
当然不是逐个byte比较,看有多宽咯。
hsdxhc 2004-10-25
  • 打赏
  • 举报
回复
全部转化为unicode,再转化为byte[],相临做比较比较,不同则插入一个空格。
j2nix 2004-10-25
  • 打赏
  • 举报
回复
那就挨个找了,这一次的和上一次的比较,满足条件就插入空格。

62,615

社区成员

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

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