如何截断字符串,将值添加到数组并删除值?

时间:2018-02-09 07:05:49

标签: java string loops hex truncate

我正在使用Java中的转换器将ASCII值转换为RGB。当我尝试截断十六进制数据时,出现了我的具体问题。基本上,我想创建一个循环数据的系统,将其转换为6位数块,然后将其添加到数组中。为额外数据创建单独的字符串。这是我的代码:

package converter;

import java.awt.Color;
import java.util.ArrayList;
import java.util.Arrays;
public class ASCIItoRGB{
    public static void main(String args[]) {

        // Input
        String asciiValue = "2121876";

        char[] c = asciiValue.toCharArray();
        StringBuffer hexValue = new StringBuffer();
        for(int i=0; i<c.length; i++) {
            hexValue.append(Integer.toHexString((int)c[i]));
        }
        String hexString = hexValue.toString();

        String hexTruncated = hexValue.toString();

        ArrayList rgbValues = new ArrayList();
        for(int i=0; i<hexString.length(); i++) {
            if(hexTruncated.length() >= 6) {
                String tempval = hexTruncated.substring(0, 5);
                rgbValues.add(Color.decode(tempval));
                tempval = hexTruncated.substring(tempval.length(), 5);
            }
            else {
            }
        }
        // Output
        System.out.println("ASCII VALUE: " + asciiValue);
        System.out.println("CHAR ARRAY: " + Arrays.toString(c));
        System.out.println("HEX VALUE: " + hexString);
        System.out.println("RGB VALUES: " + rgbValues.toString());
    }
}

1 个答案:

答案 0 :(得分:0)

好。我通过使用while循环让它工作。我还使用自身的legnth和tempval的legnth将hexString更改为等于hexString的子字符串。

        // ASCII to Hex
        char[] c = asciiValue.toCharArray();
        StringBuffer hexValue = new StringBuffer();
        for(int i=0; i<c.length; i++) {
            hexValue.append(Integer.toHexString((int)c[i]));
        }
        String hexString = hexValue.toString();

        // Hex to RGB
        ArrayList<Color> rgbValues = new ArrayList<Color>();
        while(hexString.length() >= 6) {
            String tempval = hexString.substring(0,6);
            rgbValues.add(Color.decode(tempval));
            hexString = hexString.substring(tempval.length(), hexString.length());
            if(hexString.length() < 6) {
                String hexExtra = hexString;
                System.out.println("EXTRA DATA: " + hexExtra);
            }
        }