首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串到数组字符串的精确副本!DPLL算法

字符串到数组字符串的精确副本!DPLL算法
EN

Stack Overflow用户
提问于 2014-04-22 19:49:50
回答 1查看 110关注 0票数 0

我想我离解决方案太近了,但我找不到它。我正在用两种方式实现一种DPLL算法。第一个是自动从文件获取输入,第二个(相同)是希望从控制台手动输入。第二个运行得很好,但是第一个有一些问题,我的输入都是这样的:-8,6,17,-5,3 10,-8,-6。该类需要管理从文件中获取的数据。

代码语言:javascript
复制
package ausiliare;
    import java.io.File;
import java.io.IOException;

import org.apache.commons.io.*;

//import org.apache.commons.lang3.StringUtils;

public class Lettura {
    public static int getInt() throws IOException {



    String content = null;
    File folder = new File("C:\\Solution.txt");

    content = FileUtils.readFileToString(folder) + "\n";

    int outside = Integer.parseInt(content.substring(0,
            content.indexOf("[")).trim());
    return outside;
}

public static String getString() throws IOException {

    String content = null;
    File folder = new File("C:\\Solution.txt");
    content = FileUtils.readFileToString(folder) + "\n";
    String remainingString = content.substring(content.indexOf("["),
            content.lastIndexOf("]") + 1);
    // System.out.println(remainingString);
    return remainingString;

}

public static String[] arg() throws IOException {
String[] strArray = getString().split("");//here i don't really do
    // System.out.println(Arrays.toString(strArray));
    return strArray;
}

}

这一部分在第二个算法中不是必需的(我手动复制解决方案)。问题出在这里:

代码语言:javascript
复制
public static void main(String[] args) {
    try {
        List<Clausola> formula = new LinkedList<Clausola>();
        int n = Lettura.getInt();
        String[] arg = Lettura.arg();
        parseClauses(formula, arg, n);
        System.out.println("Il numero di Letterali utilizzati:"+n);
        System.out.println("La tua formula k-CNF:"+Lettura.getString());
        boolean[] solution = solveDPLL(n, formula);

(其他)

代码语言:javascript
复制
public static void parseClauses(List<Clausola> F, String[] arg, int N) {
    for (int i = 1; i < arg.length; i++) {

我的问题是关于String[] arg = Lettura.arg()。此方法不会获得与手动提供的输入相同的输入。我希望说清楚。非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-04-22 20:02:59

不要使用String[]数组。而是使用char[]数组。您可以使用以下方法将字符串转换为char[]。

代码语言:javascript
复制
String s = "foo";
char[] charArray = s.toCharyArray();

charArray = {f, o, o}

如果您必须简单地使用String[]数组,那么我将这样做:

代码语言:javascript
复制
String s = "foo";
char[] charArray = s.toCharArray();
String[] sA = new String[charrArray.length];
for (int i = 0; i < sA.length; i++) {
    sA[i] = String.valueOf(charArray[i]);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23218659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档