uno牌java代码 uno牌新玩法

编写一个java程序,求代码

这题貌似无聊,不过细想也涉及很多JAVA的编程基础知识。

目前成都创新互联已为近1000家的企业提供了网站建设、域名、虚拟主机、网站托管、服务器托管、企业网站设计、酉阳土家族苗族网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

这位triompha的这段程序好像也没有完全按照提问者的要求作答。

他这段程序的运行结果是:

所以我这里也写了一个,先看运行结果:

上代码:

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Student{

public char[] name = new char[]{'无','聊','题'};

public int sid= 12123123;

public static void main(String[] args){

  Student stu = new Student();

  String strName = new String(stu.name);

  System.out.println("1 name:" + strName + " sid:" + stu.sid);

  System.out.println("2 Int2Hex:" + spaceStr(strName) + Integer.toHexString(stu.sid));

  String uni = stringToUnicode(strName);

  System.out.println("3 unicode:" + uni );

  String cha = unicodeToString(uni);

  System.out.println("4 change:" + cha + " unicode:" + stringToUnicode(cha) );

  String sch = String.valueOf(stu.sid);

  System.out.println("5 segment:" + cutSegment(cutSegment(sch,2,"-"),6,"-"));

}

//用于计算字符数并对其

public static String spaceStr(String s){

String str = "";

for (int i = 0; i  s.length()*2+2; i++) {

str += " ";

}

return str;

}

//转换Unicode

public static String stringToUnicode(String s) {

  String str = "";

for (int i = 0; i  s.length(); i++) {

    int ch = (int) s.charAt(i);

    if (ch  255)

        str += "\\u" + Integer.toHexString(ch);

    else

        str += "\\" + Integer.toHexString(ch);

}

return str;

}

//转换字符,末位求反

public static String unicodeToString(String s) {

  Pattern pattern = Pattern.compile("(\\\\u(\\p{XDigit}{4}))"); //正则表达式

  Matcher matcher = pattern.matcher(s);

  char ch;

  while (matcher.find()) {

      ch = (char) (Integer.parseInt(matcher.group(2), 16) ^ 1);//这里做了最后一位求反的特殊处理^1

      s = s.replace(matcher.group(1), ch + ""); 

  }

  return s;

}

//插入分隔符

public static String cutSegment(String s, int i, String strInsert){

StringBuffer buff = new StringBuffer(s);

buff.insert(i,strInsert);

return buff.toString();

}

}

代码差不多要60行,这还真不是一个简单的问题啊。

java构造方法输出值分析

main方法中我给你加上注释了,其实只要注意两点,1,初始化子类必先初始化父类 2.静态变量y始终只有一份就可以了

==================================

public class Gamma {

public static void main(String[] args){

Uno a = new Uno();//构造方法,为父类构造方法,初始化中y的值+1 y=6

a.inc();//调用父类的inc方法,x的值+1 x为int,初始值为0 +1后 x=1

System.out.println(a.getTotale());//打印x+y= 1+6 = 7

a = new Due();//调用子类构造方法,初始化子类必先初始化父类,那么 x=0;y=5, 但要注意,y为static,所以共享一份,此时y经过上面的++后已经为6;父类构造方法y++后,y=7

a.inc();//调用子类的inc方法,首先super.inc调用父类,x++ 后 x=1 w++后 w=8

System.out.println(a.getTotale()); //调用子类getTOTAL方法,方法中调用父类的方法 x+y=1+7=8 w+8=8+8=16

Due b = new Due();//调用子类的构造方法,必先初始化父类 y++ 因为static y此时为7 ++后 y=8

b.inc();//b.inc首先调用了父类 x++ x=1 w++后w=8

System.out.println(b.getTotale());//x+y+w=1+8+8 = 17

System.out.println(a.getTotale());//注意此时a也是子类的对象 因为 a=new Due() x+y+w=1+8+8 =17

}

}

pageoffice java 怎么用

OpenOffice java api:

简单的说就是利用java程序可以操作OpenOffice的所有功能,比如创建doc文档,插入文字,设置文字格式等等。

1. OpenOffice 给程序员提供了一个叫UNO (UniversalNetwork Objects)的组件技术.我理解的UNO: OpenOffice 类似于web程序中的服务器,程序员写的代码类似于客户端,利用UNO提供的接口和服务去完成对OpenOffice文档的操作。所以写程序首先要搭建 UNO环境:

1. 下载 OpenOffice

2.复制UNO提供的jar包: unoil.jar, java_uno.jar, juh.jar, jurt.jar, ridl.jar, unoloader.jar. (ps: 安装了SDK之后在文件夹找)到自己的工程中,引入它们。

3. 下载文档:DevelopersGuide.pdf.

4. 安装了SDK后,重新启动一下机器,然后就可以按照 DevelopersGuide 来学习 UNO 编程了。

5. 需要ava 环境。

补充: 安装了SDK后, java, c++帮助文档,样例程序,其他关于sdk的信息 都放在本地openOffice安装路径一个叫sdk目录下面,enjoy it !

总结一下已经实现的功能和碰到的问题汇总:

1. 首先要得到远程office组件的上下文.通过:

com.sun.star.uno.XComponentContext xContext = com.sun.star.comp.helper.Bootstrap.bootstrap();

得到,如果OpenOffice安装路径不是在工程的路径下面(我自己猜的), 就会报:

com.sun.star.comp.helper.BootstrapException: no office executable found!

解决办法: 黑其源代码, 看了源代码就会发现其实OpenOffice是在寻找本地的soffice的shell文件,所以弄个变量来保存soffice在系统中的路径,重新写一 个Bootstrap就可以了。详细请参照:论坛 。

2. 得到 XMultiComponentFactory (ComponentFactory 工厂)

com.sun.star.lang.XMultiComponentFactory xMCF = xContext.getServiceManager();

3. 得到各种组件可以通过下面代码:

// docType 是 与 soffice 同目录下面的OpenOffice的其他shell文件,swrite等等

protected XComponent newDocComponent(String docType)

throws java.lang.Exception {

String loadUrl = "private:factory/" + docType;

mxRemoteServiceManager = this.getRemoteServiceManager();

Object desktop = mxRemoteServiceManager.createInstanceWithContext(

"com.sun.star.frame.Desktop", mxRemoteContext);

XComponentLoader xComponentLoader = (XComponentLoader) UnoRuntime

.queryInterface(XComponentLoader.class, desktop);

PropertyValue[] loadProps = new PropertyValue[0];

return xComponentLoader.loadComponentFromURL(loadUrl, "_blank", 0,

loadProps);

}

4.得到 XTextDocument

XComponent xEmptyWriterComponent = newDocComponent("swriter");

XTextDocument mxDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class,

xEmptyWriterComponent);

5. 得到一个文档的引用

XText mxDocText = mxDoc.getText();

6. 得到文档的属性列表

XPropertySet mxDocProps = (XPropertySet) UnoRuntime.queryInterface(

XPropertySet.class, mxDoc);

7. 建立光标,用来插入新的内容。

XTextCursor mxDocCursor = mxDocText.createTextCursor();

XSentenceCursor xSentenceCursor = (XSentenceCursor) UnoRuntime

.queryInterface(XSentenceCursor.class, mxDocCursor);

XWordCursor xWordCursor = (XWordCursor) UnoRuntime.queryInterface(

XWordCursor.class, mxDocCursor);

8.得到光标属性列表

XPropertySet xCursorProps = (XPropertySet) UnoRuntime .queryInterface(XPropertySet.class, mxDocCursor);

9.设置插入文字格式

xCursorProps.setPropertyValue("CharFontName", "宋体");

xCursorProps.setPropertyValue("CharWeight", new Float(FontWeight.BOLD));

xCursorProps.setPropertyValue("CharHeight", new Float(10.5));

// 居中显示

xCursorProps.setPropertyValue("ParaAdjust", com.sun.star.style.ParagraphAdjust.CENTER);

10.在该光标处插入信息

mxDocText.insertString(xSentenceCursor, “Hello World", true);

11. 保存的关键代码

protected void storeDocComponent(XComponent xDoc, String storeUrl)

throws java.lang.Exception {

XStorable xStorable = (XStorable) UnoRuntime.queryInterface(

XStorable.class, xDoc);

PropertyValue[] storeProps = new PropertyValue[1];

storeProps[0] = new PropertyValue();

storeProps[0].Name = "FilterName";

storeProps[0].Value = "MS Word 97";

openOfficeJavaLogger.debug("... store \"" + xDoc.toString() + "\" to \"" + storeUrl

+ "\".");

xStorable.storeAsURL(storeUrl, storeProps);

}


当前标题:uno牌java代码 uno牌新玩法
网站URL:http://scyanting.com/article/doedeec.html