工大在线

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: liu19880426
打印 上一主题 下一主题

[原创] 计算机编程小组诚邀高手加盟!!

[复制链接]

0

主题

0

好友

53

积分

秀才

Rank: 3Rank: 3

该用户从未签到

西工币
538 枚
好评度
0 点
声望
0 点
注册时间
2008-5-29
帖子
53
积分
53
UID
15738
41#
发表于 2008-6-3 16:33:29 |只看该作者
建议坛主建一个编程技术谈论的领地,在哪里大家互不相识讨论起来会无所顾忌,畅所欲言。可以把自己平时遇到的问题,或者什么想法都发到论坛里,大家共同讨论解决。
仅是建议本人初来乍到,对这里的规矩不懂,如有冒犯,还请海涵

[ 本帖最后由 wyt323 于 2008-6-4 11:07 编辑 ]
回复

使用道具 举报

15

主题

0

好友

243

积分

举人

Rank: 4

该用户从未签到

西工币
1943 枚
好评度
4 点
声望
320 点
注册时间
2007-7-7
帖子
79
积分
243
UID
11221
42#
发表于 2008-6-3 22:09:00 |只看该作者
第一个字符串表示的是UNICODE形式的十六进制的编码串
不是很明白?
回复

使用道具 举报

0

主题

0

好友

53

积分

秀才

Rank: 3Rank: 3

该用户从未签到

西工币
538 枚
好评度
0 点
声望
0 点
注册时间
2008-5-29
帖子
53
积分
53
UID
15738
43#
发表于 2008-6-4 10:32:51 |只看该作者
比如说字符‘1’,他的UNICODE十六进制串是"0031";字符‘a’,他的UNICODE十六进制串是"0061";字符‘中’,他的UNICODE十六进制串是"4E2D";字符串"编程兴趣小组"的UNICODE十六进制串是"7F167A0B51748DA35C0F7EC4";
要实现的功能就是将串"7F167A0B51748DA35C0F7EC4"转换成串"编程兴趣小组"
回复

使用道具 举报

0

主题

0

好友

53

积分

秀才

Rank: 3Rank: 3

该用户从未签到

西工币
538 枚
好评度
0 点
声望
0 点
注册时间
2008-5-29
帖子
53
积分
53
UID
15738
44#
发表于 2008-6-4 13:52:14 |只看该作者
提示:JAVA和C#里Convert 里找方法
回复

使用道具 举报

15

主题

0

好友

243

积分

举人

Rank: 4

该用户从未签到

西工币
1943 枚
好评度
4 点
声望
320 点
注册时间
2007-7-7
帖子
79
积分
243
UID
11221
45#
发表于 2008-6-4 19:38:03 |只看该作者

测试一下了:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Testing {

        static String str="0031003200330034";
        public static void change(){
                BufferedReader inputReader = new BufferedReader(new InputStreamReader(
                                System.in));
                String input = null;
                try {
                        System.out.println("请输入16进制字符串:");
                        input = inputReader.readLine();
                        StringBuffer sbuf=new StringBuffer();
                        StringBuffer sbuf2=new StringBuffer();
                        for (int m = 0; m < input.length(); m++) {
                                char ch = input.charAt(m);
                                sbuf.append(ch);
                                char chch=(char)(Integer.parseInt(sbuf.toString(), 16));
                               
                                if ((m+1) % 4 == 0) {
                                        sbuf2.append(chch);
                    sbuf.delete(0,4);
                                }
                        }
                       
                        System.out.println(sbuf2.toString());
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

        }
        public static void main(String[] args) {
               
                change();
                // TODO Auto-generated method stub

        }

}

输入:0031003200330034
输出:1234
输入:7F167A0B51748DA35C0F7EC4
输出:编程兴趣小组
回复

使用道具 举报

0

主题

0

好友

53

积分

秀才

Rank: 3Rank: 3

该用户从未签到

西工币
538 枚
好评度
0 点
声望
0 点
注册时间
2008-5-29
帖子
53
积分
53
UID
15738
46#
发表于 2008-6-5 09:46:25 |只看该作者
你的代码写的相当漂亮,能够实现功能,非常感谢!
但是 char chch=(char)(Integer.parseInt(sbuf.toString(), 16));
放在  if ((m+1) % 4 == 0) {下面的话,好像更加合理,你觉得呢?
回复

使用道具 举报

7

主题

0

好友

254

积分

举人

Rank: 4

该用户从未签到

西工币
759 枚
好评度
0 点
声望
235 点
注册时间
2006-9-12
帖子
136
积分
254
UID
3052
47#
发表于 2008-6-5 21:46:01 |只看该作者
原帖由 wyt323 于 2008-6-4 13:52 发表
提示:JAVA和C#里Convert 里找方法

Convert里找不到方法,我菜鸟

只能用自己的方法写了一下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;

namespace ConsoleApplication2
{
    class Program
    {
        static string UnicodeToString(string srcstr)
        {
            string ret = "";
            string src = srcstr;
            int len = srcstr.Length / 4;

            for (int i = 0; i <= len - 1; i++)
            {
                string str = "";
                str = src.Substring(0,4);
                src = src.Substring(4);
                byte[] bytes = new byte[2];
                bytes[1] = byte.Parse(int.Parse(str.Substring(0, 2), NumberStyles.HexNumber).ToString());
                bytes[0] = byte.Parse(int.Parse(str.Substring(2, 2), NumberStyles.HexNumber).ToString());
                ret += Encoding.Unicode.GetString(bytes);
            }
            return ret;
        }

        static void Main(string[] args)
        {
            Console.WriteLine("请输入Unicode字符串:");
            string str = Console.ReadLine();
            Console.WriteLine("转化结果为:{0}", UnicodeToString(str));
            Console.ReadKey();
        }
    }
}
回复

使用道具 举报

0

主题

0

好友

53

积分

秀才

Rank: 3Rank: 3

该用户从未签到

西工币
538 枚
好评度
0 点
声望
0 点
注册时间
2008-5-29
帖子
53
积分
53
UID
15738
48#
发表于 2008-6-6 15:11:51 |只看该作者
呵呵,菜鸟是我吧,不该提示的地方瞎提示,结果造成误导

[ 本帖最后由 wyt323 于 2008-6-6 15:36 编辑 ]
回复

使用道具 举报

0

主题

0

好友

53

积分

秀才

Rank: 3Rank: 3

该用户从未签到

西工币
538 枚
好评度
0 点
声望
0 点
注册时间
2008-5-29
帖子
53
积分
53
UID
15738
49#
发表于 2008-6-6 15:44:57 |只看该作者
在parse的时候没有必要两位两位的parse,再对数组进行GetString()  , 可以直接这么搞  : ret+=((char)int.Parse(str, System.Globalization.NumberStyles.HexNumber)).ToString();
回复

使用道具 举报

0

主题

0

好友

53

积分

秀才

Rank: 3Rank: 3

该用户从未签到

西工币
538 枚
好评度
0 点
声望
0 点
注册时间
2008-5-29
帖子
53
积分
53
UID
15738
50#
发表于 2008-6-6 15:53:23 |只看该作者
其实本人什么也不懂,表现的这么嚣张怎么没有人拍砖头啊,郁闷

[ 本帖最后由 wyt323 于 2008-6-6 16:18 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|xatubbs.com ( 苏ICP备11050183号 )

GMT+8, 2025-7-17 23:19 , Processed in 0.156357 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部