`
andy54321
  • 浏览: 441564 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 面试中的一道编写一个截取字符串的函数

    博客分类:
  • J2EE
阅读更多

package com.heping.xx;

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

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

class ByteSelect {
 private String str;
 private int byteNum;
 public ByteSelect() { }
 public ByteSelect(String str, int byteNum) {
  this.str = str;
  this.byteNum = byteNum;
 }

 public void splitIt() {
//  str = "我ABC汉DEF";
//         12345678910
  byte bt[] = str.getBytes();
  // System.out.println("now,bytes.."+bt);
  System.out.println("Length of this String ===>" + bt.length);
  if (byteNum > 1) {
   System.out.println("byteNum==" + bt[byteNum]);
   //如果当前字节下一位小于0,说明当前截取位置将中文字符截断了
   if (bt[byteNum] < 0) {
    System.out.println("1\\" + bt[byteNum]);
    String substrx = new String(bt, 0, --byteNum);//当前被截断的中文字符整个不取
    System.out.println("substrx=" + substrx);
   } else {
    //当前字节下一位大于0,说明当前位置起码不是截断的中文字符中间位
    System.out.println("2\\" + bt[byteNum]);
    String substrex = new String(bt, 0, byteNum);
    System.out.println(substrex);
   }
  } else {
   if (byteNum == 1) {
    System.out.println("byteNum==" + bt[byteNum]);
    if (bt[byteNum] < 0) {
     String substr1 = new String(bt, 0, ++byteNum);
     System.out.println("substr1" + substr1);
    } else {
     String subStr2 = new String(bt, 0, byteNum);
     System.out.println("subStr2" + subStr2);
    }
   } else {
    System.out.println("输入错误!!!请输入大于零的整数:");
   }
  }
 }
}

public class Heping {
 public static void main(String args[]) throws NumberFormatException,
   IOException {
  String str = "我ABC汉DEF";
  System.out.println("pls input:");
  int num = Integer.parseInt(new BufferedReader(new InputStreamReader(
    System.in)).readLine());
  ByteSelect sptstr = new ByteSelect(str, num);
  sptstr.splitIt();
//  byte[] b = str.getBytes();
//  for(int i=0;i<b.length;i++)
//   System.out.println(b[i]);
//  System.out.println("1.."+new String(b,0,6));
//  System.out.println("2.."+new String(b,0,7));
//  System.out.println("3.."+new String(b,0,1));
//  System.out.println("4.."+new String(b,0,2));
//  System.out.println("2.."+new String(b,0,7));
 }
}

分享到:
评论

相关推荐

    Java精确截取字符串.doc

    面试中可能会遇到类似的问题,要求编写一个函数来截取字符串,确保汉字不被截半。以下是一个简单的示例实现: ```java public class SplitString { private String str; private int byteNum; public ...

    常见的Java上机面试题.pdf

    面试题 1 的截取字符串函数是一个典型的例子,要求面试者编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。这个问题的关键是考虑中文字符和英文字符的占用字节数问题,中文字符占两...

    华为-华为od题库练习题之截取字符串.zip

    在IT领域,特别是软件开发和面试准备中,掌握特定公司的技术要求是非常...这个压缩包“华为_华为od题库练习题之截取字符串”就是一个很好的实践资源,通过解题,你可以更好地掌握字符串截取的技巧,并提升编程能力。

    java按字节截取带有汉字的字符串的解法(推荐)

    Java面试题中提到的问题是,当截取字符串时,要保证汉字不被分割。这是因为substring方法在处理多字节字符(如汉字)时,可能会在字符中间截断,导致乱码。为了解决这个问题,我们需要编写一个定制的截取函数,这个...

    面试UC浏览器的一道处理字符串的题目(已提供答案)

    这个类提供了丰富的API,如`substring()`用于截取字符串,`indexOf()`和`lastIndexOf()`用于查找子串,`replace()`和`replaceAll()`用于替换子串,`split()`用于按指定分隔符分割字符串,以及`concat()`用于连接字符...

    拆分带中文字符串.zip

    7、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我...

    Java面试题以及答案整理.pdf

    16. **截取字符串的函数** 编写这样的函数需要考虑字符编码和字符串边界问题,确保汉字不被截断。 17. **打印昨天的当前时刻** 使用`java.util.Calendar`或`java.time`包中的类来获取昨天的日期,并格式化输出。 ...

    java面试题.doc

    编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。需要保证汉字不被截半个。 5. 多线程编程 Java 多线程编程,例如写四个线程,二个加 1,二个对一个变量减一,输出。 6. JDBC ...

    Java经典面试题(带答案)

    编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个。这道题考察了Java中的字符串处理和 Unicode 知识。 知识点8: 排序算法 排序问题需要列举出各种排序...

    JAVA 综合面试题.pdf

    该题目考察了 Java 中的字符串处理和编码,要求使用 Java 语言编写一个截取字符串的函数。 16. Java 编程, 打印昨天的当前时刻: 该题目考察了 Java 语言的日期和时间处理,要求使用 Java 语言打印昨天的当前时刻...

    java常见面试题及三大框架面试

    14. 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 可以使用 Java 的 String 类和 substring 方法实现字符串的截取。 15. JAVA 多线程编程。用 JAVA 写一个多线程程序,...

    讲座资料(2021年-2022年收藏的常见的Java上机面试题.doc

    该题要求编写一个函数,根据输入的字节数截取字符串,同时保证汉字不被分割。这个问题的关键在于理解Java中字符编码,尤其是中文字符占两个字节,而英文字符占一个字节。解决这个问题需要编写一个算法,能够识别和...

    常见的Java上机面试题.docx

    面试题1要求编写一个函数,用于截取字符串。该函数接收两个参数:一个是待截取的字符串,另一个是指定的字节数。函数的目标是在不超过指定字节数的前提下,尽可能完整地保留整个字符,尤其是避免截取半个汉字的情况...

    java综合面试题java综合面试题

    16. **截取字符串的函数** 这需要考虑到字符编码,确保汉字不被分割,可能需要使用`String`的`getBytes`和`substring`方法。 17. **Java 编程,打印昨天的当前时刻** 使用`java.time`包的API可以获取昨天的日期并...

    常见的Java上机面试题

    #### 面试题1:如何截取字符串 **考题背景与目的** 在Java编程面试中,基础编程技能的考察尤为关键,特别是对字符串处理能力的要求非常高。这是因为字符串在实际应用中极为常见,而如何高效地处理字符串则是程序员...

    Java面试宝典-经典

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    java 面试题 经典收藏

    1. **逐字节截取**:使用`substring`函数实现,它接受一个字符串和截取的字节数作为参数。 ```java public String substring(String input, int n) { byte[] bytes = input.getBytes(); byte[] data = new byte...

    java面试题大全(2012版)

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    java面试题(JAVA代码与编程).pdf

    1. **字符串截取**:题目要求编写一个函数,能按字节截取字符串,同时确保汉字不被分割。这个问题的关键在于处理Unicode编码,因为汉字通常占用两个字节。提供的代码中,`SplitString`类通过计算字符串长度和指定...

Global site tag (gtag.js) - Google Analytics