面试题怎样截取字符串

考题题干

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"ABC"4,应该截为"AB",输入"ABCDEF"6,应该输出"ABC",而不是"ABC+汉的半个"

试题分析

本面试题容易产生困惑的是中文字符和英文字符,在这里需要考虑汉字和英文字符的占用字节数问题,中文字符占两个字节,英文字符占一个字节,理解了这个,就很容易完成本题了。

代码

    package t0806;
import java.util.Scanner;
public class test3 {
static String ss; //要进行截取操作的字符串
static int n; //截取的字符串的字节数

public static void main(String[] args) {
System.out.println("请输入字符串:");
Scanner scStr = new Scanner(System.in); //从键盘获取字符串
ss = scStr.next(); //将Scanner对象中的内容以字符串的形式取出来
System.out.println("请输入字节数:");
Scanner scByte = new Scanner(System.in);//从键盘获取字符串
n = scByte.nextInt(); //将Scanner对象中的内容以数值的形式取出来
Interception(setValue()); //方法与方法间的套用
}
// 这个方法好,因为常见的都是字符串的方式读进来的,这样任何输入都转换成数组,方面比较
public static String[] setValue() { //此方法的作用是将字符串转换成字符串数组
String[] string = new String[ss.length()];//创建一个字符数组string
for (int i = 0; i < string.length; i++) {
string[i] = ss.substring(i, i + 1);
//将字符串ss中的第i个字符取出,放入字符数组中string中
}
return string; //将这个字符数组返回
}
public static void Interception(String[] string) {
int count = 0;
String m = "[\u4e00-\u9fa5]"; //汉字的正则表达试
System.out.println("以每" + n + "字节划分的字符串如下所示:");
for (int i = 0; i < string.length; i++) {
if (string[i].matches(m)) {
//将字符数组中的每一个元素与表则表达式进行匹配,如果相同则返回true
count = count + 2; //如果当前字符是汉字,计数器count就加2
} else {
count = count + 1; //如果当前字符不是汉字,计数器count就加1
}
if (count < n) { //如果当前计数器count的值小于n,则输出当前字符
System.out.print(string[i]);
} else if (count == n) { //如果当前计数器count的值等于n,则输出当前字符
System.out.print(string[i]);
count = 0;
System.out.println(); //内循环结果,则需要换行,起到控制打印格式的作用
} else {
count = 0;//如果当前计数器count的值大于n,则计数器count清零,接着执行外部循环
System.out.println();
}
}
}
}

Java机试题目_怎样截取字符串的更多相关文章

  1. 华为2013年西安java机试题目:如何过滤掉数组中的非法字符。

    这道题目为记忆版本: 题目2描述: 编写一个算法,过滤掉数组中的非法字符,最终只剩下正式字符. 示例:输入数组:“!¥@&HuaWei*&%123” 调用函数后的输出结果,数组:“Hu ...

  2. Java机试题目

    1.生成一个随机四位数,每位数字不重复. package com.cloud.stagging.lhcloudzuul; import java.util.Random; /** * 1.生成一个随机 ...

  3. java机试要点

    Java机试准备 一般结构:   import java.util.Scanner; public class Main{ public static void main(String[] args) ...

  4. 华为JAVA机试流程

    1.JAVA机试流程:①打开IE浏览器,输入机试系统IP地址(以当天告知的地址为准):②输入姓名.手机,选择“C/C++”或“JAVA”,登录:③登录后显示题目,阅读题目并点击页面最下方的“下载框架文 ...

  5. java常见机试题目(1)

    好久没写博客了,今天重新开始,发现自己学习的知识很糙,就是知道,也能说出来,但是很多知识点不清晰,不深入,所以呢,写个博客总结一些程序,理清概念. 1java中大小写字母转化,在java中存在api ...

  6. 华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)

    题目描述: 输出两个不超过100位的大整数的乘积. 输入: 输入两个大整数,如1234567 123 输出: 输出乘积,如:151851741 样例输入: 1234567 123 样例输出: 1518 ...

  7. Hua Wei 机试题目一

    一.身份证号码验证 题目描述: 我国公民的身份证号码特点如下:1. 长度为18位:2. 第1-17位只能为数字:3. 第18位可以是数字或者小写英文字母x.4. 身份证号码的第7~14位表示持有人生日 ...

  8. 9月5日 华为2014校园招聘的机试题目_C语言版答案

    手有些生了. 题目: 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串.压缩规则:1.仅压缩连续重复出现的字符.比如 ...

  9. 一道来自华为的C机试题目

    题目是这样的 求一个字符串中连续字母的个数 比如I have a book. : 1 I have a dog. : 0 I haavee aa dogg : 4 #include <windo ...

随机推荐

  1. Java程序员的10道XML面试题

    包括web开发人员的Java面试在内的各种面试中,XML面试题在各种编程工作的面试中很常见.XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准.XML面试问题包括用于转换XML文件的X ...

  2. Android权威编程指南读书笔记(1-2章)

    第一章 Android应用初体验 1.4用户界面设计 <?xml version="1.0" encoding="utf-8"?> ADT21开发版 ...

  3. PopupWindow 问题集锦

    1.响应返回键/响应键盘事件(onKeyListener) 最近在做PopupWindow, 发现使用PopupWindow一出现,不会响应popup外面的事件,经过资料查找,发现有两种方法可以响应外 ...

  4. ng-cookie 的基本使用

    2.angular-cookie - 配置$cookiesProvider ```angular.module("Demo",[]).config(["$cookiesP ...

  5. js与java通信

    js 调用java中的接口并传递参数给客户端处理方式: webView.addJavascriptInterface(new NewsDetail() , "newsDetail" ...

  6. node.js在windows下的学习笔记(9)---文件I/O模块

    开发中我们经常会有文件I/O的需求,node.js中提供一个名为fs的模块来支持I/O操作,fs模块的文件I/O是对标准POSIX函数的简单封装. 1.将"hello world" ...

  7. Funambol Developer&#39;s Guide 中 connector development样例的问题

    今天学习Funambol的connector开发,官方文档中的样例有问题. 首先,文档中提供的maven命令不可用: mvn archetype:generate -DarchetypeGroupId ...

  8. struts2学习笔记(5)---自己定义拦截器

    什么是拦截器? struts2中拦截器分为Struts2定义好的拦截器和自己定义的拦截器. 其作用是在一个Action运行之前进行拦截,在Action运行之后又增加某些操作. 实现原理 当请求一个Ac ...

  9. C/C++开发工具大比拼【转】

    C/C++开发工具大比拼[转]  (http://hi.baidu.com/vipdowndown/blog/item/dcd7c1b5ad3209ef30add167.html) * NetBean ...

  10. java使用Thumbnailator操作图片

    Thumbnailator 是一个用来生成图像缩略图.裁切.旋转.添加水印等操作的 Java 类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图. Thumbnailato ...