有朋友在群里问了这个问题,印象中Java没有这方面的函数(百分数转换为小数倒是有一个),而且直接乘以100会得出类似2.5999999999的结果,在网上也没有搜到类似的解决方案,所以把我们的讨论结果发上来,肯定不是最优解,也希望来访者留下你们的解决办法,只要能优化其中的某一段就可以!

private String convert(String orignal)
{
    
//去掉小数后面的零值,如:0.02500
    String noDotInteger = Integer.parseInt    (str.replace('.','')) + "";//2500
    int lengthOfZero = noDotInteger.length() - noDotInteger.indexOf("0");//2
    str = str.substring(0, str.length() - lengthOfZero);//0.025 

    
//转换成百分数字符串
    int index = orignal.indexOf('.');
    
if(index < orignal.length() - 2)
    
{
    
return orignal.substring(0,index) + orignal.substring(index + 1,index + 3+
 
'.' + orignal.substring(index + 3+ "%";
    }

    
else
    
{
       
return orignal.substring(0,index) + orignal.substring(index + 1+ "%";
    }

}
 

续:J2ME综合技术讨论群 的刘军提出了他的解决方案:

import java.math.BigDecimal;
public class Hello
{
    
public static void main(String args[])
    
{
        String s 
= "0.025";
        BigDecimal bd 
= new BigDecimal(s);
        System.out.println(bd.multiply(
new BigDecimal(100))); //输出2.500
    }

}
 

山城浪子则说用java.text.DecimalFormat最好最方便!
posted @ 2006-03-27 19:48 罗明 阅读(4505) | 评论 (2)编辑 收藏
 
如果服务器发来的字节流没有作任何标记,只是在发完一次数据后flush(),则在客户端可以用inputStream.available()来判断流的长度,但一定要在调用read()至少一次之后,不然就只能得到零值。

如下代码所示:

//将接收到的数据存到字节数组array
int firstChar = inputStream.read();
int length = inputStream.available();
byte[] array = new byte[length+1];
array[
0= (byte)firstChar;
inputStream.read(array,
1,length);
posted @ 2006-03-19 21:30 罗明 阅读(1221) | 评论 (3)编辑 收藏
 
去年十月从中科大面试回来就写了一篇日志,详细记录了整个面试过程,由于某些原因一直没能发布出来,现在就想总结几点出来,给HIT的XDXM们一些参考。

1、要自信。面试中自信是最重要的。
面试时像跟老师拉家常似的,老朋友吗,好久不见了,当然要聊久一点啦,^_^
2、去之前最好能复习一下数据结构、操作系统和编译原理的基本概念,老师可能会提一些这方面的问题;把自己做过的项目整理一些资料出来,最好能弄几张截图。
3、坐火车来面试的前天晚上要尽量休息好,面试要显得有精神,最好提前一天到,要不然上火车就赶紧补卧铺票,我补迟了一点,结果到半夜1点多才换到卧铺,好在睡了5个小时,精神还可以。
4、没别的啦,推免程序的时间挺紧的,各个学校不一样,一定要打听好。
科大在接收推免的最后一天才收到我的申请,招生办的老师打电话问我为什么寄这么迟,没能到计算机系面试,有可能是这个原因。
工大9月30号才给发成绩单和证明,我又在大连实习,每次都要同学帮忙,特快专递也得两天啊,kick!
最后补充一点,工大学生还是很强的,有保研机会的应该都能被中科大录取,所以不要怕录不上。
posted @ 2006-03-18 21:55 罗明 阅读(4967) | 评论 (4)编辑 收藏
 
      前天由于突然断电,造成系统崩溃,启动系统在Windows Server 2003滚动条出现时发生蓝屏,提示system32/config目录下的software文件错误,无法启动

      用安装盘修复未果,以为覆盖安装可以保留原有程序,所以重装了系统,结果在安装时也没发现有覆盖安装保留原有系统的选项。装完后程序都不能运行了,为了保留原有Oracle数据(Y的那几天没做备份),试着把整个Oracle文件夹(包括ora90, admin, oradata)备份下来,用同样路径重装Oracle和新建数据库,数据库设置和以前一样。然后在“服务”里停掉所有以Oracle开头的服务,我的包括OracleOraHome90Agent,OracleOraHome90HttpServer,OracleOraHome90TNSListener和OracleServiceSMS(SMS是我的数据库名)。再把刚才的备份覆盖到以前的目录(jdk目录里有些dll可能被使用,这个目录可以不覆盖),启动刚才关闭的服务,打开Enterprise Manager ConsoleNet Manager,发现现在的数据库和服务命名跟原来一模一样(重装操作系统时最好计算机名也跟以前一样,不然还要改一下NetManager里服务命名监听程序主机名)。

      不知道这种备份是不是叫冷备份,反正是挺“冷”的,悄无声息就备份过来了,呵呵,这种机制感觉挺好!
posted @ 2006-03-16 09:35 罗明 阅读(3115) | 评论 (1)编辑 收藏
 

      有越来越多的迹象表明Web2.0之类的东西渐渐深入网络的各个角落,无论是Google Maps,Gmail,Flickr还是国内的163邮箱、365kit、豆瓣网,都把Ajax之类代表Web2.0的技术发挥得淋漓尽致,撇开他们用的技术不管,单从他们提高的用户交互“流畅感”,就可以说是对Web技术的一次改革。

      以前的Web应用从功能方面考虑的因素比较多,对提升用户体验度所做的工作很少,现在的Web2.0应用则从用户的角度入手,把提升用户体验度当成第一目标。以前不喜欢搞Web开发,更不喜欢用JavaScript,感觉那些东东只能做些美化界面的活,做些动画什么的,因为当初认为它只能在客户端发挥作用,而现在JavaScript和异步传输结合,就把服务器的地盘也夺过来了。

      如今,Web2.0应用的复杂度已经可以与大型应用媲美了,很多提高用户体验度的东东都要在后台做大量有技术难度的工作,如365kit的通讯录同步功能,就要在与Outlook、MSN、手机交互中下很大工夫。

      现在还没有时间,要忙着做项目和毕业设计,等过一阵子,一定要研究一下Ajax和JavaScript,并做出个像样的应用来。也希望以后能做出个好的应用,有市场的,慢慢把它做大,推广,现在不流行网络创业吗,呵呵,而且门槛也比较低,要的硬件和资金不多,主要是应用要有市场、有创意!

      Web2.0火了,我们又多了一条路!

(写得不好,欢迎大家拍砖)


续:
RIA应该也是一种实现Web2.0的技术?

Web2.0应该是一种思想,是通过提高用户体验度来赢得市场,实现它的技术有很多,只要能达到提高用户体验度的目的,我们就可以说它“是”Web2.0,不是吗?

RIA技术我知道的好像有三种:1、Flex 2、Eclipse RCP 3、Ajax  4、Java Web Start

posted @ 2006-03-10 11:42 罗明 阅读(1088) | 评论 (2)编辑 收藏
 
1、Flex终于免费了
Adobe公司发布Flex2.0测试版本,除了Flex Builder IDE收费外,其他都免费,相信不久也会出现基于Eclipse的Flex GUI开发插件,RIA开发者或许又多了一种选择

2、JavaSE 6 ( 代号Mustang)已经能在java.net上下载了,相信在各方面都会有很大进步

3、Borland宣布放弃包括Delphi、C++ Builder、C# Builder和JBuilder在内的IDE产品线,原因是迫于开源的压力,看来Eclipse的影响是要越来越大了

4、广泛流传Google正在研发自己的OS, 而且将基于Linux的一个发行版---Ubuntu Linux。呵呵,当时选择用Ubuntu看来也是明智之举啊

5、VMware宣布将免费推出服务器版虚拟软件VMware Server,现在已经可以下载其beta版本
posted @ 2006-03-09 16:26 罗明 阅读(423) | 评论 (0)编辑 收藏
 
      在Joel的一篇文章里提到了这样一句话,Something is usable if it behaves exactly as expected.  Joel认为软件的可用性也是如此:如果软件的每一次响应都符合用户要求,那它就是可用的。这确实是“正确”的,关键在于我们怎么获得目的用户的确切需求,单个领域用户还好一点,做个市场调查估计能得出个八九不离十;如果是通用软件,那还得考虑周详一点。

      这句话倒是值得收藏,以后做软件的时候是应该多考虑一下,使界面响应和工作流程能更符合用户的习惯和需求!

续:
又有了一种新的译法,感觉这样容易理解些:UI能以用户预期的方式来响应他们的操作,那这个UI就是可用的。
posted @ 2006-03-08 11:05 罗明 阅读(295) | 评论 (0)编辑 收藏
 
     摘要: 生活小窍门大全2--热爱生活,就收藏她吧!--(收藏)  阅读全文
posted @ 2006-03-05 22:35 罗明 阅读(966) | 评论 (0)编辑 收藏
 
     摘要: 生活小窍门大全--热爱生活,就收藏她吧!--(收藏)  阅读全文
posted @ 2006-03-05 22:32 罗明 阅读(571) | 评论 (0)编辑 收藏
 
Andy Luo:
1、在生成頁面后更新數據庫中鏈接地址,或做一個標記,使得主頁上各篇文章的鏈接地址指向靜態頁面。
2、在第一次訪問文章時創建靜態頁面,或在服務器定時查詢新增紀錄並生成靜態頁面
3、訪問主業時也可生成靜態網葉,通過查詢數據庫中一個記錄,獲取最新文章的錄入時間,比較並更新主業的靜態網葉

轉自:http://blueline.hit.edu.cn/ccs/blogs/loveme/archive/2006/03/03/1030.aspx

为了减轻服务器压力,将原来的文章管理系统由JSP文件的从数据库中取数据显示改为由jsp生成静态html文件后直接访问html文件。下面是一个简单的示例

1.buildhtml.jsp

<%@ page contentType="text/html; charset=gb2312" import="java.util.*,java.io.*"%>
<%
try{
 String title="This is Title";
 String content="This is Content Area";
 String editer="LaoMao";
 String filePath = "";
 filePath = request.getRealPath("/")+"test/template.htm";
 //out.print(filePath+"<br>");
 String templateContent="";
 FileInputStream fileinputstream = new FileInputStream(filePath);//读取模块文件
 int lenght = fileinputstream.available();
 byte bytes[] = new byte[lenght];
 fileinputstream.read(bytes);
 fileinputstream.close();
 templateContent = new String(bytes);
 //out.print(templateContent);
 templateContent=templateContent.replaceAll("###title###",title);
 templateContent=templateContent.replaceAll("###content###",content);
 templateContent=templateContent.replaceAll("###author###",editer);//替换掉模块中相应的地方
 //out.print(templateContent);
 // 根据时间得文件名
 Calendar calendar = Calendar.getInstance();
 String fileame = String.valueOf(calendar.getTimeInMillis()) +".html";
 fileame = request.getRealPath("/")+fileame;//生成的html文件保存路径
 FileOutputStream fileoutputstream = new FileOutputStream(fileame);//建立文件输出流
 byte tag_bytes[] = templateContent.getBytes();
 fileoutputstream.write(tag_bytes);
 fileoutputstream.close();
}
catch(Exception e){
 out.print(e.toString());
}

%>

2. template.htm

<html>
<head>
<title>###title###</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="../css.css" rel=stylesheet type=text/css>
</head>

<body>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
  <tr>
    <td align="center">###title###</td>
  </tr>
  <tr>
    <td align="center">author:###author###&nbsp;&nbsp;</td>
  </tr>
  <tr>
    <td>###content###
 </td>
 
  </tr>

</table>
</body>
</html>

posted @ 2006-03-05 22:05 罗明 阅读(2623) | 评论 (3)编辑 收藏
 

 在下面这篇文章中 http://www.firstpartners.net/blog/technology/2006/03/01/web-20-and-enterprise-java-move-over-struts/ ,作者介绍了几种常用的AJAX框架。

最后作者以Struts为例,介绍了几种选择Ajax的场景:

1 现有的Struts应用程序要使用Ajax,请使用AjaxAnywhere

2 建立新的应用程序准备使用Ajax,参考Appfuse,它集成了DWR的Ajax

3 中期目标: 使用一种支持Ajax的JSF的实现,MyFaces或者Struts Shale

原文地址:http://blog.csdn.net/danny_xcz/archive/2006/03/03/614302.aspx

posted @ 2006-03-04 08:58 罗明 阅读(883) | 评论 (0)编辑 收藏
 
.... ... ... zhu zhu~
posted @ 2006-03-03 22:09 罗明 阅读(80) | 评论 (0)编辑 收藏
 
避免因线程运行造成Swing界面停止响应。

类javax.swing.SwingUtilities提供了一些Swing工具方法:
/* 异步执行doRun线程 */

static void invokeLater(Runnable doRun) 


还有一个同步执行的:
static void invokeAndWait(Runnable doRun) 
posted @ 2006-03-02 16:09 罗明 阅读(954) | 评论 (1)编辑 收藏
 
美特斯邦威:不挂寻常科

特步: 挂科, 死一般的感觉

百事:今天你挂了吗?

森马:考什么, 挂什么

脑白金:今年过节不挂科, 挂科只挂专业课

汇仁肾宝:他挂我也挂

李宁:挂科, 一切皆有可能

旺旺:你挂, 我挂, 大家挂, 挂挂

鼎湖山泉:你挂过科吗?

好迪:大家挂,才是真的挂!

白加黑:白天挂一科,不瞌睡;晚上再挂一科,睡得香

联想:学生不挂科,学校会怎样?

娃哈哈:妈妈~~我也要挂科!

清嘴:你想知道挂科的味道吗?

安踏:我挂科,我喜欢!

NIKE:Just 挂 it!

钙中钙:现在的挂科啊,它含金量高,挂一科顶过去五科,方便!你瞧我,一口气挂上五科,不费劲!自从挂了科,腰不疼,腿不软,跳楼也有劲了!  
posted @ 2006-02-24 13:24 罗明 阅读(522) | 评论 (0)编辑 收藏
 

刚解决的问题:

用Word的网页形式做报表时遇到中文乱码,而且已经使用ISO8859_1对中文参数进行了转换,试试将网页里的charset=us-ascii改为charset=gb2312

怎么我这里默认的charset是us-ascii呢,我这是中文版阿?!

posted @ 2006-02-19 20:43 罗明 阅读(377) | 评论 (0)编辑 收藏
 
问:
这样一个语句,
insert INTO test ( time) VALUES('2005-07-19 11:53:53')
在有的oracle数据库上运行成功,有的机器上运行不成功。请问oracle中有这样设置么?
( 当然,把它改成
insert INTO test ( time) VALUES(to_date('2005-07-19 11:53:53','YYYY-MM-DD HH24:MI:SS'))  肯定可以运行成功。)

还有一个小问题。oracle有没有提供这种的转换函数
把1104840333 转化为2005-06-28 21:09:17 这种类型。 (1104840333 是从1970- 2005-06-28 21:09:17的秒数

答:
alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS''

你的秒数是怎么算的,不对吧?
select (to_date('2005-06-28 21:09:17','yyyy-mm-dd hh24:mi:ss')-to_date('1970','yyyy'))*24*60*60 from dual
出来的结果是1104354557
这个问题可以这样解决:
select to_date('19700101000000','yyyymmddhh24miss')+(1104840333/(24*60*60)) from dual
posted @ 2006-02-16 22:33 罗明 阅读(1463) | 评论 (0)编辑 收藏
 
目的是在没有安装JDK的情况下制作可执行jar。

步骤:
 
1、在应用程序文件根目录下新建一个META-INF目录,在该目录下新建MANIFEST.MF文件,
文件内容为:
1 Main-Class: 包名.主类名 
2 
3 

2、将应用程序根目录下所有文件用winrar或winzip打包,格式为zip;

3、将zip文件扩展名改为jar ;

4、双击jar文件即可运行。

希望能对大家有点帮助。
posted @ 2006-02-16 14:49 罗明 阅读(1185) | 评论 (1)编辑 收藏
 
     摘要: 值的关注的Java开源项目   名称 资料 概况 OFBiz http://ofbizchina.com:8080/ http://www.ofbiz.org/ https://ofbiz.dev.java.net/ OFBiz是一个非常著名的开源项...  阅读全文
posted @ 2006-02-16 14:14 罗明 阅读(1304) | 评论 (0)编辑 收藏
 
使用Ant中的两个Tasks来完成自动运行Nightly Test

<junit printsummary="yes" haltonfailure="yes">
    <test name="org.redsoft.forum.AllTests” haltonfailure="no" outfile="result" >
        <formatter type="xml" />
    </test>
</junit>

产生一个XML是结果报告
再利用JunitReport来产生一个可供浏览的结果文件。

<junitreport todir="./reports">
    <fileset dir="./reports">
        <include name="TEST-*.xml"/>
    </fileset>
 <report format="frames" todir="./report/html"/>
</junitreport>

posted @ 2006-02-16 14:13 罗明 阅读(373) | 评论 (0)编辑 收藏
 
一个下载整站资源的软件,目前版本是0.0.3,大概十来个类

组件图

类图

了解结构了就开始看吧,go
posted @ 2006-02-16 14:12 罗明 阅读(630) | 评论 (0)编辑 收藏
仅列出标题
共14页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last