用java 截取字符串,每三个一组 java如何截取一个字符串的后三位?

\u7528java\u5982\u4f55\u5b9e\u73b0\u5c06\u4e00\u4e9b\u6570\u5b57\u5206\u5272\u6210\u6bcf\u4e09\u4e2a\u4e00\u5bf9\u7136\u540e\u5b58\u5165\u6570\u7ec4\u4e2d \u5982\uff1astringstr=\u201c123648

String str = "123648945819399529s";String[] arr = new String[str.length() / 3 == 0 ? str.length() / 3 : str.length() / 3 + 1];int index = 0;for(int i=0; i str.length()){arr[i] = str.substring(index);}else{arr[i] = str.substring(index,(index = index+3));}}//\u6253\u5370\u6570\u7ec4System.out.println(java.util.Arrays.toString(arr));

str.substring\u4e00\u4e2a\u8d77\u59cb\u4f4d\u7f6e\u4e00\u4e2a\u7ed3\u675f\u4f4d\u7f6e\u3002
Stringvalue="abcdefg";
intlength=value.length();
if(length>=3){
Stringstr=value.substring(length-3,length);
System.out.println(str);
}else{
System.out.println(value);
}\u8f93\u51fa\u7ed3\u679c\u4e3aefg
\u5f53\u7136\u622a\u53d6\u524d\u8981\u5224\u65ad\u662f\u5426\u4e3anull\uff0c\u4e0d\u4e3anull\u624d\u53ef\u4ee5\u622a\u53d6
String str="abcdefgh";
String newStr=String.SubString(str.length()-3);
System.out.println(newStr); // \u5c06\u8f93\u51fa\u5b57\u7b26\u4e32\u6700\u540e\u4e09\u4f4d\u5b57\u7b26fgh

以下是将一长串数字分组用逗号隔开,每三个一组,转化为字符串.

例如:

2345678--->2,345,678

23--->23

private static String convert(long space) {
    String str = String.valueOf(space);
    StringBuilder builder = new StringBuilder(str);
    str = builder.reverse().toString();
    StringBuilder stringBuilder = new StringBuilder();
    for (int i = 0; i < str.length(); i++) {
        if (i%3==0) {
            //防越界&保留最高位
            if (i+3>str.length()){
                stringBuilder.append(str.substring(i));
                break;
            }
            stringBuilder.append(str.substring(i, i + 3) + ",");
        }
    }
    str = stringBuilder.reverse().toString();
    //消除字符串长度为3的倍数时多出的','
    if (str.charAt(0)==','){
        str = str.substring(1);
    }
    return str;
}

还可以再继续优化,间隔,分隔符.....哎呀,肚子好疼,再见!



急着下班了,这个是简单的例子:结果为3位一输出,主要就是用了一个.substring方法,(z,z+3)就是获取z位到z+3位的数据,很简单。
public static void main(String[] args) {
String test = "abcdefghigk";
int z = 0;
for(int i=0;i<test.length()/3;i++){
String a = test.substring(z,z+3);
System.out.println(a);
z = z+3;
}
}

import java.util.*;

public class Test
{
public static void main(String args[])
{
System.out.println("pleast input a number:");
Scanner reader=new Scanner(System.in);
String inpt;
inpt=reader.next();
int inptLength = inpt.length();
int strLength;
boolean b = true;
if(inptLength%3 == 0)
{
strLength = inptLength/3;
}
else
{
b = false;
strLength = (int)inptLength/3 + 1;
}
String[] str = new String[strLength];
for(int i=0; i<str.length;i++)
{
if(b||(i!=str.length-1))
str[i] = inpt.substring(3*i,3*i+3);
else
str[i] = inpt.substring(3*i);
}
for(int i=0;i<str.length;i++)
{
System.out.print(str[i] + " ");
}
System.out.println();
}

}
这个程序可以运行,不过觉的自己写的不是很好,对JAVA提供的方法没有运用好,高手在来指点下吧.

//package com.color.program;

import java.util.ArrayList;
import java.util.List;

public class SubString {

public static List<String> subString(String num){
List<String> list = new ArrayList<String>();
for(;num.length()>3;){
list.add(num.substring(num.length()-3));
num = num.substring(0,num.length()-3);
}
if(num.length()>0){
list.add(num);
}
return list;
}

public static void main(String[] args){
String s = "1242332435234523464256245645634564356345634653423342134";
List<String> l = SubString.subString(s);

for(String str :l){
System.out.println(str);
}
}

}

----------result-----------------
134
342
423
653
634
345
356
564
634
645
245
256
464
523
234
435
332
242
1

public List<String> subs(String content) {
List<String> list = new ArrayList();
for (int i = 0; i < content.length(); i += 3) {
list.add(content.length() - i < 3 ? content.substring(i) : content.substring(i, i + 3));
}
return list;
}

扩展阅读:java截取字符串后两位 ... substring截取字符串 ... java截取字符串首字母 ... java截取特定字符串 ... java字符串截取前四位 ... 截取字符串的三种方法 ... java正则表达式截取前两位 ... js 截取字符串 ... java截取字符串的一部分 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网