`
joeyhacker
  • 浏览: 95929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

今天看了一个关于字符串的面试题

阅读更多

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

我的做法:

import java.util.Scanner;

class puzzle {
	String SplitStr;
	int SplitByte;

	public puzzle(String str, int bytes) {
		SplitStr = str;
		SplitByte = bytes;
	}

	public void SplitIt() {
		int sl = SplitStr.getBytes().length;
		System.out.println("这段字符串的字节数是:" + sl);
		char[] cs = SplitStr.toCharArray();
		String ss ="";
		String bs ="";
		for(int i=0;i<cs.length;i++){
			char s = cs[i];
			ss += String.valueOf(s);
			if(ss.getBytes().length == SplitByte){
				System.out.println(ss);
				ss="";
			}
			else if(ss.getBytes().length > SplitByte){
				if(!"".equa(bs) System.out.println(bs);
				ss=String.valueOf(s);
			}
			bs = ss;
		}
		System.out.print(ss);
	}
	public static void main(String[] args) {
		System.out.println("输入字符串和字节数");
		Scanner scan = new Scanner(System.in).useDelimiter("\\s+|,");
		puzzle p = new puzzle(scan.next(), scan.nextInt());
		p.SplitIt();
	}
}




别人的写法:

package string;
class SplitString 
{
 private String str;
 private int byteNum;

 public SplitString(){}

 public SplitString(String str,int byteNum)
 {
  this.str=str;
  this.byteNum=byteNum;

 }
 
 public void splitIt()
 {

  byte bt[]=str.getBytes();
  System.out.println("Length of this String ===>"+bt.length);
  if(byteNum>1)
  {
   if(bt[byteNum]<0)
   {
    String substrx=new String(bt,0,--byteNum);
    System.out.println(substrx);
   }else
   {
    String substrex=new String(bt,0,byteNum);
    System.out.println(substrex);
   }
   
  }else
  { 
   if(byteNum==1)
   {
    if(bt[byteNum]<0)
    {
     String substr1=new String(bt,0,++byteNum);
     System.out.println(substr1);
    }else
    { 
     String subStr2=new String(bt,0,byteNum);
     System.out.println(subStr2);
    }
   }else
   {
    System.out.println("输入错误!!!请输入大于零的整数:");
   }
  }
 }
}

public class TestSplitString
{
 public static void main(String args[])
 {
  String str="我ABC汉DEF";
  int num=6;
  SplitString sptstr = new SplitString(str,num);
  sptstr.splitIt();
 }
}


 

分享到:
评论
2 楼 joeyhacker 2008-12-22  
lyp0206 写道

你的代码是错的,请您看清题目要求! 题目要求:输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 而你的输出结果是“我ABC汉”!

呵呵,我看错了~ Sorry
1 楼 lyp0206 2008-12-22  
你的代码是错的,请您看清题目要求!
题目要求:输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
而你的输出结果是“我ABC汉”!

相关推荐

    字符串面试题整理

    1. **字符串循环左移**:给定一个字符串和一个整数k,将字符串中的每个字符向左移动k个位置。例如,字符串"abcdefg",k=2,移动后的结果为"efgabcd"。可以使用双指针技巧,将字符串分为两部分,然后交换它们。 2. *...

    面试题,关于字符串的面试题,很详细

    下面是关于字符串处理的面试题总结: 一、求字符串的最小后继 问题:实现一个函数,输入一个字符串,输出该字符串的最小后继。例如,“abc”的最小后继为“abd”,“dhz”的最小后继为“di”。 思路:对最后一个...

    面试题练习题前端 JavaScript高级语法-字符串属性

    面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端 JavaScript高级语法-字符串属性面试题练习题前端...

    1.字符串高频面试题精讲

    1.字符串高频面试题精讲1.字符串高频面试题精讲1.字符串高频面试题精讲

    C语言字符串练习(习题+答案).zip

    尤其在面试和笔试环节,对C语言的掌握程度往往成为评价一个程序员能力的重要标准。本资源"《C语言字符串练习(习题+答案).zip》"正是针对这一需求而准备的,它包含了C语言字符串操作的专项练习题和对应的答案,帮助...

    自己总结的面试题字符串

    在C++编程中,字符串处理是面试中常见的知识点,尤其是涉及到内存操作的部分。本文将深入探讨`memset`、`strcpy`、`memcpy`以及`memmove`这四个函数的使用和区别。 首先,`memset`函数用于填充内存。它的原型是`...

    C语言基础面试题(03-字符串函数).docx

    以上解答了C语言中涉及字符串处理的一些基础面试题,实际编程中,我们需要考虑到边界条件、效率优化和错误处理等因素,确保代码的健壮性和正确性。在面试中,理解这些基本概念并能灵活运用是至关重要的。

    面试题今天(字符串反转)

    在第一个示例代码中,使用了字符数组来实现字符串的反转。 ```java public static void main(String[] args) { String str = args[0]; char[] ch = str.toCharArray(); char[] b = new char[ch.length]; for ...

    c语言面试题之哈希表字符串中的第一个唯一字符.zip

    综上所述,解决“C语言面试题之哈希表字符串中的第一个唯一字符”不仅要求掌握C语言的基础语法,还需理解哈希表的原理和应用,以及具备良好的算法设计和分析能力。熟练掌握这些知识点,对于提升C语言编程技能和应对...

    java截取字符串程序,一道面试题。答案

    java截取字符串,一道面试题。好像没有找到正确答案,今天找时间做了一个,仅供参考。本人运行过了。

    Code_笔试题_字符串压缩_

    标题中的“Code_笔试题_字符串压缩_”指的是一个与编程相关的笔试题目,重点在于实现字符串的压缩功能。这类问题通常出现在技术面试或招聘过程的笔试试题中,旨在考察应聘者的编程能力和对数据结构的理解。 描述中...

    c语言面试题之双指针反转字符串.zip

    在这个"反转字符串"的面试题中,我们将深入探讨如何使用双指针来实现这一任务。 首先,我们需要了解C语言中字符串的基本概念。在C语言中,字符串是由零个或多个字符组成的序列,以空字符'\0'作为结束标志。我们通常...

    腾讯在线笔试题-字符串反转,以及把整个字符串逆序

    - `change` 函数:使用两个指针,一个从字符串开始向后移动(`first`),另一个从字符串结束向前移动(`last`),并使用 `swap` 函数交换它们所指向的字符,直到两个指针相遇或交错。 - `rever` 函数:首先,使用 `...

    C#面试题字符串转换整数

    C#面试题字符串转换整数

    程序员面试题精选-输出一个字符串的所有子串

    本题目的核心是输出一个给定字符串的所有子串,这里我们以字符串 "abc" 为例来详细讲解解题思路和方法。 首先,我们需要理解子字符串的概念。在字符串 "abc" 中,它的每一个字符(如 "a", "b", "c")以及由连续字符...

    字符串常见笔试题

    1 将字符串转化为整数。2 将整数转化为字符串(考虑正负号的问题)。3 实现字符串拷贝函数strcpy(程序的完整性)。4 编程实现memcpy函数(以字节为单位的拷贝)。5 编程实现memmove函数。 等笔试题。

    计算机常见算法面试题

    3. 查找最长的子字符串:该问题要求编写一个函数,在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。解决方法是使用两个指针,一个指针用于记录当前字符,另一个指针用于记录最长的子字符串...

    java-leetcode面试题解哈希表第387题字符串中的第一个唯一字符-题解.zip

    在本题解中,我们将深入探讨Java编程语言中如何利用哈希表解决LeetCode上的第387题——"字符串中的第一个唯一字符"。这道题目常见于求职面试,是测试程序员对数据结构和算法理解的经典问题。哈希表,又称散列表,是...

Global site tag (gtag.js) - Google Analytics