Я делаю простую программу рисования и застрял в получении определенной части строки.Вот в чем проблема - когда я сохраняю изображение с 9 панелями, он сохраняет значения RBG каждой панели в файл .txt.Пример:
- java.awt.Color [r = 0, g = 0, b = 0]
- java.awt.Color [r = 255, g = 255, b= 255]
- java.awt.Color [r = 255, g = 0, b = 0]
- java.awt.Color [r = 0, g = 0, b = 255]
- java.awt.Color [r = 0, g = 0, b = 0]
- java.awt.Color [r = 255, g = 255, b = 0]
- java.awt.Color [r = 255, g = 255, b = 0]
- java.awt.Color [r = 255, g = 0, b = 0]
- java.awt.Color [r = 0, g = 0, b = 255]
Отсюда я вызываю сканер, чтобы прочитать строки нашего файла.Мне просто нужно найти лучший способ извлечь значения из [] в строку.Я пытался использовать токенизатор безрезультатно, все еще застрял с избытком строк.Я пытался манипулировать персонажами, но снова не получилось.Каков наилучший способ извлечения данных из наших скобок?И было бы проще сохранить отдельные значения r = xxx, b = xxx, g = xxx в строку []?Спасибо, и вот источник, который у меня пока есть:
import java.awt.Color;
import java.io.*;
import java.lang.*;
import java.util.*;
//when finished, organize imports (narrow down what imports were used)
public class SaveLoad {
private boolean tryPassed, tryPassed2;
private Formatter x;
//final String[] rawData; will be where the rgb raws are stored
private Scanner xReader;
public void save(Color[] c, String s) {
//s is the filename
int counter = c.length;
//Tries to create a file and, if it does, adds the data to it.
try{
x = new Formatter(s+".txt");
tryPassed = true;
while(counter>0) {
x.format("%s. %s\n", (c.length-(counter-1)), c[counter-1]);
counter--;
}
x.close();
}catch (Exception e){
e.printStackTrace();
tryPassed = false;
}
}
//load will take paramaters of a filename(string); NOTE:::: make the file loaded specify an appendix (ex] .pixmap)
//MAYBE add a load interface with a jDropdownmenu for the filetype? add parameter String filetype.
public void load(String s, String filetype) {
//loads the file and, if successful, attempts to read it.
try{
xReader = new Scanner(new File(s+filetype));
tryPassed2 = true;
}catch(Exception e){
e.printStackTrace();
tryPassed2 = false;
System.out.println(s+filetype+" is not a valid file");
}
while(xReader.hasNext()&&tryPassed2==true) {
String inBrackets = xReader.next().substring(17);
System.out.println(inBrackets);
}
}
}
Кроме того, игнорируйте мои грязные записи.