JAVA程序,从键盘输入汉字,并将汉子转换为相应的unicode编码,怎么写啊

JAVA程序,从键盘输入汉字,并将汉子转换为相应的unicode编码,怎么写啊,第1张

上代码:

import 缓激java.util.Scanner

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in)

        System.out.println("请输入汉字:")

        String input = sc.nextLine()

        if (input.length() == 0) {

            System.out.println("输入错误")

            return

        }

        System.out.println("汉字转unicode结果:")

        char[] chars = input.toCharArray()

        for 塌漏(int i = 0 i < chars.length i++) {

            String unicode = Integer.toHexString(chars[i])

            if (unicode.length() <= 2) {

                // 团哪烂不足四位前面加0补齐

                unicode = "00" + unicode

            }

            unicode = "\\u" + unicode

            System.out.println(chars[i] + ": " + unicode)

        }

    }

}

如果你是想用纯java写的话,那么你需要一个java自带的控件叫swing,毕竟你不能让人家在你的控制台上输入,下面是一个小例子,这可能不完全是你想要的,我给你提供的只是一个思路

import java.awt.CardLayout

import java.awt.Container

import java.awt.Font

import java.awt.GridBagLayout

import java.awt.GridLayout

import java.awt.LayoutManager

import java.awt.TextField

import javax.swing.ButtonGroup

import javax.swing.ImageIcon

import javax.swing.JButton

import javax.swing.JCheckBox

import javax.swing.JComboBox

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JList

import javax.swing.JPanel

import javax.swing.JPasswordField

import javax.swing.JProgressBar

import javax.swing.JRadioButton

import javax.swing.JScrollPane

import javax.swing.JSlider

import javax.swing.JSpinner

import javax.swing.JTextArea

import javax.swing.JTextField

import javax.swing.ListSelectionModel

/**

* @author Administrator

*

*/

public class LoginSystem {

/**

* @param args

* @param flowLayout 

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

JFrame f=new JFrame()

f.setTitle("系统登录界面")

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

f.setExtendedState(JFrame.MAXIMIZED_BOTH)

f.setVisible(true)

//设置窗口的大小和位置

f.setSize(400,400)

f.setLocation(200,200)

Container con=f.getContentPane()//生成一个容器

con.setLayout(new GridLayout(7,1))

JPanel pan1=new JPanel()//生成一个新的版面

JLabel title=new JLabel("欢迎登陆本系统")

title.setFont(new Font("宋体",Font.BOLD, 20))

pan1.add(title)

con.add(pan1)

//最上面的登陆文字

JPanel pan2=new JPanel()//生成一个新猜手首的版面

JLabel name=new JLabel("用户名")

pan2.add(name)

TextField tf_name=new TextField(20)

tf_name.setText("请在此处输入用户名")

pan2.add(tf_name)

con.add(pan2)

//用户名及其文本框放置在第二个版面上

JPanel pan3=new JPanel()//生成一个新的版面

JLabel pass = new JLabel("密码")

pan3.add(pass)

JPasswordField password=new JPasswordField(15)

password.setEchoChar('*')

pan3.add(password)

con.add(pan3)

//密码及其密码域放在第三穗数个版面薯敏上

JPanel pan4 = new JPanel()

JButton b_log=new JButton("登陆")

pan4.add(b_log)

JButton b_exit=new JButton("退出")

pan4.add(b_exit) 

con.add(pan4)

//登陆和退出这两个按钮放在第四个版面上

JPanel pan5 = new JPanel()

con.add(pan5)

JPanel pan6 = new JPanel()

con.add(pan6)

JPanel pan7 = new JPanel()

con.add(pan7)

//空白版面

}

}

现在普遍情况都是web项目,前端和后端的结合,前端可以用java提供的jsp,html(css,js),用他们加上后台代码,可以帮助你实现前端输入数据,后端处理数据,返回处理结果,渲染页面,这个太复杂了,不是一两句话说的清楚的,具体的你可以自行百度。

以上,就是这样

/*

游戏开始,从天上掉下10个有标号(字母)的炸d,

下面有10颗子d(就是可以按10个羡伏字母).

如果所按字母包含在炸d中,就找到兄银携相应的炸d并

消灭它,消灭后返回继续利用.如果没有就一直飞到天上最后才返回.

*/

import java.net.*

import java.awt.*

import java.awt.event.*

import java.applet.*

import javax.swing.*

public class paodan extends Applet implements Runnable,KeyListener

{

private Image bgImage

private Graphics bg

static Thread myThread

static AudioClip ac1,ac2

static JFrame md

String Zi26=""

String pd[]={"a","a","a","a","a","a","a","a","a","a"}//用来存储10个字母做落下的炮d

String fj[]={"","","","","","","","","",""}//用来存储10个字母做反击的防搏罩空

int x[]=new int[10]

int y[]=new int[10]

//炸d的坐标

int x1[]=new int[10]

int x2[]=new int[10]

int y1[]=new int[10]

//火箭的坐标

int life=100 //生命

Toolkit KIT=this.getToolkit()

Image paodan=KIT.createImage("paodan.jpg")

Image huojian=KIT.createImage("huojian.jpg")

public paodan() //用来生成一个包含26个英文字母的字符串Zi26

{for (int i=0i<26i++)

Zi26+=(char)((int)'A'+i)

}

public void cushi() //初始各种数据,如炮d与火箭的坐标.

{

try

{URL u1=this.getClass().getResource("huishou.wav")

URL u2=this.getClass().getResource("lanjie.wav")

ac1=Applet.newAudioClip(u1)

ac2=Applet.newAudioClip(u2)

}catch(Exception e){}

for (int i=0i<10i++)

{pd[i]=noRepeat()

x[i]=noHit(i,10)

if (i>=5)

y[i]=5+(int)(Math.random()*50)

else

y[i]=60+(int)(Math.random()*50)

x1[i]=220+i*32+1y1[i]=550

x2[i]=x1[i]

}

}

public void panduan() //用来判断pd[i]的y值是否要到达屏幕下边,如果是就把Y值变为5,并把所有Y值加3.

{ for(int i=0i<10i++)

{ if (y[i]>=500)

{life--ac1.play()y[i]=5}

y[i]+=3

if (life==0) System.exit(0)

}

y[9]+=3

md.setTitle("打字训练室你的生命为"+life+" 提示:白色的字母表示未按,粉红色的表示已按.")

}

public void fk() //防空程序,用来击毁落下的炸d

{ int i=0,j=0

for (i=0i<10i++)

{ if (!fj[i].equals(""))

{

for (j=0j<10j++)

if (fj[i].equals(pd[j]))

{ if (!(x1[i]>=x[j] &&x1[i]<=x[j]+32 || x1[i]+32>=x[j] &&x1[i]+32<=x[j]+32))

if (x1[i]>x[j])

x1[i]-=4

else x1[i]+=4

if (!(y1[i]>=y[j] &&y1[i]<=y[j]+32 || y1[i]+32>=y[j] &&y1[i]+32<=y[j]+32))

if (y1[i]>y[j])

y1[i]-=3

else y1[i]+=4

if (y[j]>=380 &&Math.abs(x[j]-x1[i])>5)

if (x[j]>x1[i]) x1[i]+=5

else if (x[j]<x1[i]) x1[i]-=5

if (y[j]>=380 &&Math.abs(y[j]-y1[i])>5)

if (y[j]>y1[i]) y1[i]+=5

else if (y[j]<y1[i]) y1[i]-=5

if ((x1[i]>=x[j] &&x1[i]<=x[j]+32 || x1[i]+32>=x[j] &&x1[i]+32<=x[j]+32) &&(y1[i]>=y[j] &&y1[i]<=y[j]+32 || y1[i]+32>=y[j] &&y1[i]+32<=y[j]+32))

{life++ac2.play()pd[j]=noRepeat()x[j]=noHit(i,10)y[j]=5x1[i]=x2[i]y1[i]=550fj[i]=""}

break

}

if (j==10) y1[i]-=3

if (y1[i]<=5) {y1[i]=550fj[i]=""}

}

}

}

public void paint(Graphics g)

//根据相应的坐标在屏幕上画炸d和吃炸d的娃娃,并保证白色的字母表示未按,粉红色的表示已按

{int i=0,j=0

g.setFont(new Font("Vrinda",1,21))

for(i<pd.lengthi++)

{ for (j=0j<fj.lengthj++)

if (pd[i].equals(fj[j]))

{g.setColor(new Color(255,93,55))

g.drawImage(paodan,x[i],y[i],this)

g.drawString(pd[i],x[i]+11,y[i]+20)

break

}

if (j==fj.length)

{g.setColor(new Color(255,255,255))

g.drawImage(paodan,x[i],y[i],this)

g.drawString(pd[i],x[i]+11,y[i]+20)

}

g.setColor(new Color(255,93,55))

g.drawImage(huojian,x1[i],y1[i],this)

g.drawString(fj[i],x1[i]+10,y1[i]+22)

}

}

//没有按的显红色,按了的显白色

public void keyPressed(KeyEvent k) //当用户按的是字母时,就生成一个防空字母.

{char z=k.getKeyChar()

int i=0,j=0

if ((z>='A' &&z<='Z') || (z>='a' &&z<='z'))

{ if (z-32>=65) z-=32

String zc=""+z

for(i<fj.lengthi++)

{ if (zc.equals(fj[i])) break

} //保证字母不重复

if (i==fj.length)

for(i=0i<fj.lengthi++)

if (fj[i].equals("")) {fj[i]=zcbreak}

}

}

public void keyReleased(KeyEvent k){}

public void keyTyped(KeyEvent k){}

public String noRepeat() //生成一个不重复的字母.

{int zc,i

String xinx

while(true)

{zc=(int)(Math.random()*26)

xinx=Zi26.substring(zc,zc+1)

for(i=0i<10i++)

if (pd[i].equals(xinx)) break

if(i==10) return xinx

}

}

int noHit(int i,int langth) //让字母保持车距.

{int tmpX,j,k,width=32

while (true)

{ tmpX=(int)(Math.random()*768)+1

for(j=0j<10j++)

{ if (tmpX+width<x[j] || tmpX>x[j]+width) continue//如果欲生成的位置不与当前J所占的位置相交就判断下一个J.

if ((tmpX>=x[j] &&tmpX<=x[j]+width) || (tmpX+width>=x[j] &&tmpX+width<=x[j]+width)) break

//如果欲生成的位置与当前x[j]所占据的范围相交就结束循环,重新生成一个起始位置.

}

if (j==10) {return tmpX}

}

}

public void update(Graphics g)

{if (bgImage==null)

{bgImage=createImage(this.getSize().width,this.getSize().height)

bg=bgImage.getGraphics()

}

bg.setColor(getBackground())

bg.fillRect(0,0,this.getSize().width,this.getSize().height)

//bg.setColor(getForeground())

paint(bg)

g.drawImage(bgImage,0,0,this)

}

public void run() //用线程循环更改Y值,并根据新的坐标在屏幕上重画pd[I]

{

while(true)

{fk()

panduan()

repaint()

try{ myThread.sleep(50) }catch(Exception e) {}

}

}

public static void main(String args[])

{paodan m=new paodan()

md=new JFrame("打字训练室")

md.setSize(800,600)

md.addKeyListener(m)

md.getContentPane().add(m)

m.cushi()

md.setVisible(true)

md.setResizable(false)

myThread=new Thread(m)

myThread.start()

}

}

注:源代码取自编程中国

本人一点建议:其实你这样学Java是没用的,你应该知道你做的项目思想,先做什么后做什么,然后在亲自动手去敲代码!一点建议!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12566459.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存