如何截断字符串、将值添加到数组以及删除值?
How do I truncate a string, add the value to an Array, and delete the value?
我正在 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());
}
}
好的。我通过使用 while 循环让它工作。我还使用自身的长度和 hexString
的长度将 tempval
更改为等于 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);
}
}
我正在 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());
}
}
好的。我通过使用 while 循环让它工作。我还使用自身的长度和 hexString
的长度将 tempval
更改为等于 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);
}
}