public class StringSplitTest { /** * @author java-demon * @param args */
public static void main(String args[]){ String s = "ABC汉DEF"; int len = 3; SplitStr(s,len); }
public static void SplitStr(String str,int len){
String result = ""; char temp; //取得的字节数 int counter=0; int i=0; //汉字个数 int han = 0; while(counter < len){ temp = str.charAt(i); //System.out.println(Character.getNumericValue(str.charAt(3))); if(Character.getNumericValue(temp)!=-1){ //遇到字母的时候 result = result +temp; counter++; i++;
}else{ //遇到汉字的时候,作为unicode字符,汉字的整数值是-1 result = result +temp; counter = counter +2; i++; han = han +1; } }
if(counter > len){ if(len ==1){ result = ""; }else{ result = result.substring(0,counter-(han+1)); } }
{
public static String changeStr(String str0,int )
{
char str[]=str0.toCharArray();//转化成字符数组
if(<0)
{
return str0;
}
else
{
for(int i=;i<str.length;i++)
{
str[i-1]=str[i];
}
str[str.length-1]='\0';
str0=new String(str);
return str0;
}
}
public static void main(String[] args)
{
String strSource="我ABC";
System.out.println(changeStr(strSource,4));
}
}
package com.js_java.test12;import java.util.Scanner;public class StringEx_1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入需要截取字符串");
Scanner scanner = new Scanner(System.in);
String string = scanner.next();
char c[] =string.toCharArray();//new char[string.length()];
System.out.println("要截取第几个字符");
int num = scanner.nextInt();
//int x = num;
for(int i =0;i<num;i++)
{
//c[i]=string.charAt(i);
if(c[i]>=256)
{
num--;
}
}
System.out.println(string.substring(0, num));
}
}
int n=5; //给定的字节长度
byte[] b=s.getBytes(); //转换成字节数组
s=new String(b,0,n); //以要求的字节数构建新字符串
if (s.charAt(s.length()-1)>127){//判断最后一个字符是否为中文的半个字符,是的情况下不输出.
System.out.println(s.substring(0, s.length()-1));
}
else System.out.println(s);我这个直接的字节长度,应该比对字符数组进行判断后重组好些
* @author java-demon
* @param args
*/
public static void main(String args[]){
String s = "ABC汉DEF";
int len = 3;
SplitStr(s,len);
}
public static void SplitStr(String str,int len){
String result = "";
char temp;
//取得的字节数
int counter=0;
int i=0;
//汉字个数
int han = 0;
while(counter < len){
temp = str.charAt(i);
//System.out.println(Character.getNumericValue(str.charAt(3)));
if(Character.getNumericValue(temp)!=-1){
//遇到字母的时候
result = result +temp;
counter++;
i++;
}else{
//遇到汉字的时候,作为unicode字符,汉字的整数值是-1
result = result +temp;
counter = counter +2;
i++;
han = han +1;
}
}
if(counter > len){
if(len ==1){
result = "";
}else{
result = result.substring(0,counter-(han+1));
}
}
System.out.println("result "+ result);}
public class MyTest1 {
public static void main(String[] args) throws UnsupportedEncodingException {
String str="ad汗骄傲asf";
StringBuilder str1=substring(str,5);
System.out.println(str1);
}
public static StringBuilder substring(String str, int count){
StringBuilder tempSring =new StringBuilder();
int tempCount=0;
String [] strarray=str.split("");
for(int i=1;i<strarray.length;i++){
tempCount+=strarray[i].getBytes().length;
tempSring=tempSring.append(strarray[i]);
if(tempCount==count){
break;
}
else if(tempCount==count-1){
break;
}
}
return tempSring;
}
}
要求汉字输出的时候else if(tempCount==count-1){中的-改为+