指令系统的发展经历了从简单到复杂的演变过程。早在20世纪50-60年代,计算机大多数采用分立元件的晶体管或电子管组成,其体积庞大,价格也很昂贵,因此计算机的硬件结构比较简单,所支持的指令系统也只有十几至几十条最基本的指令,而且寻址方式简单。
到60年代中期,随着集成电路的出现,计算机的功耗、体积、价格等不断下降,硬件功能不断增强,指令系统也越来越丰富。

package Com.TableText;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class TableText_02 {/*** 功能描述:分割字符串** @param str*            String 原始字符串* @param splitsign*            String 分隔符* @return String[] 分割后的字符串数组*/@SuppressWarnings("unchecked")public static String[] split(String str, String splitsign) {int index;if (str == null || splitsign == null) {return null;}ArrayList al = new ArrayList();while ((index = str.indexOf(splitsign)) != -1) {al.add(str.substring(0, index));str = str.substring(index + splitsign.length());}al.add(str);return (String[]) al.toArray(new String[0]);}/*** 功能描述:替换字符串** @param from*            String 原始字符串* @param to*            String 目标字符串* @param source*            String 母字符串* @return String 替换后的字符串*/public static String replace(String from, String to, String source) {if (source == null || from == null || to == null)return null;StringBuffer str = new StringBuffer("");int index = -1;while ((index = source.indexOf(from)) != -1) {str.append(source.substring(0, index) + to);source = source.substring(index + from.length());index = source.indexOf(from);}str.append(source);return str.toString();}/*** 替换字符串,能能够在HTML页面上直接显示(替换双引号和小于号)** @param str*            String 原始字符串* @return String 替换后的字符串*/public static String htmlencode(String str) {if (str == null) {return null;}return replace("\"", """, replace("<", "<", str));}/*** 替换字符串,将被编码的转换成原始码(替换成双引号和小于号)** @param str*            String* @return String*/public static String htmldecode(String str) {if (str == null) {return null;}return replace(""", "\"", replace("<", "<", str));}private static final String _BR = "<br/>";/*** 功能描述:在页面上直接显示文本内容,替换小于号,空格,回车,TAB** @param str*            String 原始字符串* @return String 替换后的字符串*/public static String htmlshow(String str) {if (str == null) {return null;}str = replace("<", "<", str);str = replace(" ", " ", str);str = replace("\r\n", _BR, str);str = replace("\n", _BR, str);str = replace("\t", "    ", str);return str;}/*** 功能描述:返回指定字节长度的字符串** @param str*            String 字符串* @param length*            int 指定长度* @return String 返回的字符串*/public static String toLength(String str, int length) {if (str == null) {return null;}if (length <= 0) {return "";}try {if (str.getBytes("GBK").length <= length) {return str;}} catch (Exception e) {}StringBuffer buff = new StringBuffer();int index = 0;char c;length -= 3;while (length > 0) {c = str.charAt(index);if (c < 128) {length--;} else {length--;length--;}buff.append(c);index++;}buff.append("...");return buff.toString();}/*** 功能描述:判断是否为整数** @param str*            传入的字符串* @return 是整数返回true,否则返回false*/public static boolean isInteger(String str) {Pattern pattern = Pattern.compile("^[-\\+]?[\\d]+$");return pattern.matcher(str).matches();}/*** 判断是否为浮点数,包括double和float** @param str*            传入的字符串* @return 是浮点数返回true,否则返回false*/public static boolean isDouble(String str) {Pattern pattern = Pattern.compile("^[-\\+]?\\d+\\.\\d+$");return pattern.matcher(str).matches();}/*** 判断是不是合法字符 c 要判断的字符*/public static boolean isLetter(String str) {if (str == null || str.length() < 0) {return false;}Pattern pattern = Pattern.compile("[\\w\\.-_]*");return pattern.matcher(str).matches();}/*** 从指定的字符串中提取Email content 指定的字符串** @param content* @return*/public static String parse(String content) {String email = null;if (content == null || content.length() < 1) {return email;}// 找出含有@int beginPos;int i;String token = "@";String preHalf = "";String sufHalf = "";beginPos = content.indexOf(token);if (beginPos > -1) {// 前项扫描String s = null;i = beginPos;while (i > 0) {s = content.substring(i - 1, i);if (isLetter(s))preHalf = s + preHalf;elsebreak;i--;}// 后项扫描i = beginPos + 1;while (i < content.length()) {s = content.substring(i, i + 1);if (isLetter(s))sufHalf = sufHalf + s;elsebreak;i++;}// 判断合法性email = preHalf + "@" + sufHalf;if (isEmail(email)) {return email;}}return null;}/*** 功能描述:判断输入的字符串是否符合Email样式.** @param str*            传入的字符串* @return 是Email样式返回true,否则返回false*/public static boolean isEmail(String email) {if (email == null || email.length() < 1 || email.length() > 256) {return false;}Pattern pattern = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");return pattern.matcher(email).matches();}/*** 功能描述:判断输入的字符串是否为纯汉字** @param str*            传入的字符窜* @return 如果是纯汉字返回true,否则返回false*/public static boolean isChinese(String str) {Pattern pattern = Pattern.compile("[\u0391-\uFFE5]+$");return pattern.matcher(str).matches();}/*** 功能描述:是否为空白,包括null和""** @param str* @return*/public static boolean isBlank(String str) {return str == null || str.trim().length() == 0;}/*** 功能描述:判断是否为质数** @param x* @return*/public static boolean isPrime(int x) {if (x <= 7) {if (x == 2 || x == 3 || x == 5 || x == 7)return true;}int c = 7;if (x % 2 == 0)return false;if (x % 3 == 0)return false;if (x % 5 == 0)return false;int end = (int) Math.sqrt(x);while (c <= end) {if (x % c == 0) {return false;}c += 4;if (x % c == 0) {return false;}c += 2;if (x % c == 0) {return false;}c += 4;if (x % c == 0) {return false;}c += 2;if (x % c == 0) {return false;}c += 4;if (x % c == 0) {return false;}c += 6;if (x % c == 0) {return false;}c += 2;if (x % c == 0) {return false;}c += 6;}return true;}/*** 功能描述:人民币转成大写** @param str*            数字字符串* @return String 人民币转换成大写后的字符串*/public static String hangeToBig(String str) {double value;try {value = Double.parseDouble(str.trim());} catch (Exception e) {return null;}char[] hunit = { '拾', '佰', '仟' }; // 段内位置表示char[] vunit = { '万', '亿' }; // 段名表示char[] digit = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; // 数字表示long midVal = (long) (value * 100); // 转化成整形String valStr = String.valueOf(midVal); // 转化成字符串String head = valStr.substring(0, valStr.length() - 2); // 取整数部分String rail = valStr.substring(valStr.length() - 2); // 取小数部分String prefix = ""; // 整数部分转化的结果String suffix = ""; // 小数部分转化的结果// 处理小数点后面的数if (rail.equals("00")) { // 如果小数部分为0suffix = "整";} else {suffix = digit[rail.charAt(0) - '0'] + "角"+ digit[rail.charAt(1) - '0'] + "分"; // 否则把角分转化出来}// 处理小数点前面的数char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组char zero = '0'; // 标志'0'表示出现过0byte zeroSerNum = 0; // 连续出现0的次数for (int i = 0; i < chDig.length; i++) { // 循环处理每个数字int idx = (chDig.length - i - 1) % 4; // 取段内位置int vidx = (chDig.length - i - 1) / 4; // 取段位置if (chDig[i] == '0') { // 如果当前字符是0zeroSerNum++; // 连续0次数递增if (zero == '0') { // 标志zero = digit[0];} else if (idx == 0 && vidx > 0 && zeroSerNum < 4) {prefix += vunit[vidx - 1];zero = '0';}continue;}zeroSerNum = 0; // 连续0次数清零if (zero != '0') { // 如果标志不为0,则加上,例如万,亿什么的prefix += zero;zero = '0';}prefix += digit[chDig[i] - '0']; // 转化该数字表示if (idx > 0)prefix += hunit[idx - 1];if (idx == 0 && vidx > 0) {prefix += vunit[vidx - 1]; // 段结束位置应该加上段名如万,亿}}if (prefix.length() > 0)prefix += '圆'; // 如果整数部分存在,则有圆的字样return prefix + suffix; // 返回正确表示}/*** 功能描述:去掉字符串中重复的子字符串** @param str*            原字符串,如果有子字符串则用空格隔开以表示子字符串* @return String 返回去掉重复子字符串后的字符串*/private static String removeSameString(String str) {Set<String> mLinkedSet = new LinkedHashSet<String>();// set集合的特征:其子集不可以重复String[] strArray = str.split(" ");// 根据空格(正则表达式)分割字符串StringBuffer sb = new StringBuffer();for (int i = 0; i < strArray.length; i++) {if (!mLinkedSet.contains(strArray[i])) {mLinkedSet.add(strArray[i]);sb.append(strArray[i] + " ");}}System.out.println(mLinkedSet);return sb.toString();}/*** 功能描述:过滤特殊字符** @param src* @return*/public static String encoding(String src) {if (src == null)return "";StringBuilder result = new StringBuilder();if (src != null) {src = src.trim();for (int pos = 0; pos < src.length(); pos++) {switch (src.charAt(pos)) {case '\"':result.append(""");break;case '<':result.append("<");break;case '>':result.append(">");break;case '\'':result.append("&apos;");break;case '&':result.append("&");break;case '%':result.append("&pc;");break;case '_':result.append("&ul;");break;case '#':result.append("&shap;");break;case '?':result.append("&ques;");break;default:result.append(src.charAt(pos));break;}}}return result.toString();}/*** 功能描述:判断是不是合法的手机号码** @param handset* @return boolean*/public static boolean isHandset(String handset) {try {String regex = "^1[\\d]{10}$";Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(handset);return matcher.matches();} catch (RuntimeException e) {return false;}}/*** 功能描述:反过滤特殊字符** @param src* @return*/public static String decoding(String src) {if (src == null)return "";String result = src;result = result.replace(""", "\"").replace("&apos;", "\'");result = result.replace("<", "<").replace(">", ">");result = result.replace("&", "&");result = result.replace("&pc;", "%").replace("&ul", "_");result = result.replace("&shap;", "#").replace("&ques", "?");return result;}/*** @param args*/public static void main(String[] args) {String source = "asdfghjklmnbvcxz";String from = "efg";String to = "china";System.out.println("在字符串source中,用to替换from,替换结果为:"+ replace(from, to, source));System.out.println("返回指定字节长度的字符串:"+ toLength("qwertyuioplkjhgfdsa", 9));System.out.println("判断是否为整数:" + isInteger("+0"));System.out.println("判断是否为浮点数,包括double和float:" + isDouble("+0.36"));System.out.println("判断输入的字符串是否符合Email样式:" +isEmail("borter@163.com"));System.out.println("判断输入的字符串是否为纯汉字:" + isChinese("你好!"));System.out.println("判断输入的数据是否是质数:" + isPrime(12));System.out.println("人民币转换成大写:" + hangeToBig("10019658"));System.out.println("去掉字符串中重复的子字符串:" + removeSameString("100 100 9658"));System.out.println("过滤特殊字符:" + encoding("100\"s<>fdsd100 9658"));System.out.println("判断是不是合法的手机号码:" + isHandset("15981807340"));System.out.println("从字符串中取值Email:" + parse("159818 borter@163.com07340"));}
}

指令系统的发展经历指令系统的发展经历了从简单到复杂的演变过程相关推荐

  1. 家家有个机器人 机器人正经历“PC式发展”

    30前,他毅然弃学,创立微软,成为个人电脑普及革命的领军人物:30年后的今天,他再次在<科学美国人>杂志向世界预言,机器人领域即将重复个人电脑崛起的道路,只要点燃机器人普及的"导 ...

  2. 美国计算机技术发展历史,计算机的发展历史

    原标题:计算机的发展历史 计算机的发展历史 计算机的发展是由简单到复杂,从低级到高级慢慢演变的一个过程,就像中国的"结绳记事".算盘,计算尺,机械计算机到现在的智能计算机,他们在历 ...

  3. 技术的发展与互联网的发展

    以下是我研究生课程自然辩证法的一篇论文,希望对大家有点帮助. [摘要]本文以自然辩证的观点探讨了互联网的发展历程,运用自然辩证法的基本理论.基本方法,系统分析了互联网的发展历史.现状和未来.并对其的发 ...

  4. “今日头条”发展困境与未来发展策略

    本人产品新人一枚,近期闲来没事,于是查阅相关资料,进行了整合,现对"今日头条"这款App的发展困境与未来发展策略说说自己的看法,如有不对,敬请批评. "今日头条" ...

  5. 计算机软件发展的指标,信息化发展指数

    信息化发展指数(Information Development Index; 简称IDIITU) [编辑] 什么是信息化发展指数 信息化发展指数是国际电信联盟(ITU)将两个重要的信息化评价指数综合而 ...

  6. 【技术史】人工智能的发展历程、技术发展和应用领域

    人工智能的发展历程.技术发展和应用领域 本文是人工智能简史的详细介绍,共分10个章节,涵盖了人工智能的发展历程.技术发展和应用领域等方面. 文章目录 人工智能的发展历程.技术发展和应用领域 第一章:人 ...

  7. 计算机科学的发展历程和未来发展方向

    计算机科学是一门研究计算机及其应用的学科,是现代科技的重要支柱之一.本文将介绍计算机科学的发展历程和未来发展方向. 一.计算机科学的发展历程 计算机科学的历史可以追溯到古代的计算工具,例如算盘.九章算 ...

  8. 2021年高交会圆满闭幕:推动高质量发展,构建新发展格局

    中国深圳--(美国商业资讯)--第二十三届中国国际高新技术成果交易会(CHTF,简称"高交会")于2021年12月31日在深圳圆满落下帷幕,为期三天的现场展和为期五天的线上展展示了 ...

  9. 计算机指令系统课件,《机器指令系统》PPT课件.ppt

    <<机器指令系统>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<机器指令系统>PPT课件.ppt(40页珍藏版)>请在人人文库网上搜索. 1. ...

最新文章

  1. php四种基础排序算法的运行时间比较
  2. c# mysql varbinary_Mysql中如何插入VarBinary二进制类型?
  3. C语言,使用union了解内存
  4. java 如何放大动画图,Android仿微信图片放大动画
  5. 计算机基础知识与程序设计二,计算机基础与程序设计.doc
  6. java中byte装箱和装箱_Java包装类、拆箱和装箱详解
  7. 牛客--二维数组中的查找
  8. 在浏览器上打开swf文件时变成了下载swf文件解决方式
  9. 前端的学习之路:初级HTML---图片标签
  10. linux查看其他用户计划任务,Linux计划任务(crond、atd)
  11. STM32F407VET6+cubemx+FSMC+ST7789
  12. rssi室内定位算法原理_室内定位常用算法概述
  13. 小高不太行之前端——html网页制作
  14. 你可能不知道,你登曾是个气喘小胖子,靠努力逆袭完成梦想
  15. 网吧电影视频服务器架设完全入门教程(转)
  16. lokohelp康复机器人_Lokohelp康复机器人在脑卒中偏瘫患者下肢运动功能恢复中的应用...
  17. 一个数据录入/查询的应用程序在登录时错误信息解决过程
  18. 删除桌面上出现无文件名图标的方法
  19. Xcode 用Ad_Hoc方式打包
  20. 我是一位40岁的“老程序员”,我有一些想法

热门文章

  1. Linux 中的分区魔术师-parted magic
  2. 计算机维修工(4级)试题,计算机维修工 (初级) 上机动手排除故障试题【优质】.doc...
  3. matlab神经网络工具箱实现两个输入的BP神经网络
  4. 钢绞线的弹性模量的计算方法_钢绞线伸长量计算方法.doc
  5. 微信小程序趋势及前景,详细的Android学习指南
  6. ewebeditor***
  7. 有趣!10个你不得不知的Linux终端游戏
  8. 字节抖音电商NLP算法一面
  9. 腾讯如何打造一款实时对战手游
  10. bilibili手机视频下载目录整理脚本