小编bou*_*rne的帖子

在Java中将Char数组转换为List

任何人都可以帮助我并告诉如何将char数组转换为列表,反之亦然.我正在尝试编写一个程序,用户输入一个字符串(例如"Mike is good"),在输出中,每个空格都被"%20"(Ie "Mike%20is%20good")替换.虽然这可以通过多种方式完成,但由于插入和删除在链表中需要O(1)时间,我想用链表进行尝试.我正在寻找将char数组转换为列表,更新列表然后将其转换回来的方法.

public class apples
{
   public static void main(String args[])
   {
      Scanner input = new Scanner(System.in);
      StringBuffer sb = new StringBuffer(input.nextLine());

      String  s = sb.toString();
      char[] c = s.toCharArray();
      //LinkedList<char> l = new LinkedList<char>(Arrays.asList(c));
      /* giving error "Syntax error on token " char",
         Dimensions expected after this token"*/
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,在这个程序中的用户输入字符串,这是我在我存储StringBuffer,这我先转换为字符串,然后到一个char数组,但我没能获得一个列表ls.

如果有人可以告诉正确的方法将char数组转换为列表,反之亦然,我将非常感激.

java list stringbuffer

27
推荐指数
4
解决办法
7万
查看次数

QML对象类型不是QTCreator中的类型错误

大家好我是QT的新手,我无法通过另一个qml加载一个qml基本上我已经创建了一个qml MyTabView(MyTabView.qml)

 import QtQuick 2.3
 import QtQuick.Controls 1.2

TabView {
    width: 360
    height: 360

    Component.onCompleted: {
        addTab("Tab 1", tab1)

      addTab("Tab 2", tab2)
    }

    Component {
        id: tab1
        Rectangle {color: "red"}
    }

    Component {
        id: tab2
        Rectangle {color: "blue"}
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图通过另一个qml(main.qml)显示它在同一目录中

import QtQuick 2.3
import QtQuick.Controls 1.2
import "."

ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Main")

MyTabView {}

}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行我的项目时,我得到了这个错误

QQmlApplicationEngine无法加载组件qrc:/qml/main.qml:11 TabView不是一个类型

请注意我在MyTabView.qml中有M Caps,MyTabView.qml和main.qml在同一目录中.

有人能指出我在做什么错吗?我想指出的一件事是,当我替换MyTabView.qml的所有代码而不是MyTabView {}内部时main.qml,程序不会给出任何错误并正确运行.提前致谢

qt qml qqmlcomponent

8
推荐指数
3
解决办法
1万
查看次数

如何在Java中更改HTTP响应中的字符集编码

我必须从远程服务器获取一些JSON对象,为此我正在使用这个功能很好,除了有时一些奇怪的数据被提取,我相信是因为它使用ASCII字符集进行解码.

请在下面找到我正在使用的方法

public HttpResponse call(String serviceURL,String serviceHost,String namespace,String methodName,String payloadKey, String payloadValue) throws ClientProtocolException,IOException,JSONException
    {
            HttpResponse response = null;
            HttpContext HTTP_CONTEXT = new BasicHttpContext();
            HTTP_CONTEXT.setAttribute(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0");
            HttpPost httppost = new HttpPost(serviceURL);
            httppost.setHeader("User-Agent",Constants.USER_AGENT_BROWSER_FIREFOX);
            httppost.setHeader("Accept", "application/json, text/javascript, */*");
            httppost.setHeader("Accept-Language","en-US,en;q=0.8");
            httppost.setHeader("Content-Encoding", "foo-1.0");
            httppost.setHeader("Content-Type", "application/json; charset=UTF-8");
            httppost.setHeader("X-Requested-With","XMLHttpRequest");
            httppost.setHeader("Host",serviceHost);
            httppost.setHeader("X-Foo-Target", String.format("%s.%s", namespace,methodName));
            /*Making Payload*/
            JSONObject objectForPayload = new JSONObject();
            objectForPayload.put(payloadKey, payloadValue);
            StringEntity stringentity = new StringEntity(objectForPayload.toString());
            httppost.setEntity(stringentity);
            response = client.execute(httppost);
            return response;


    }
Run Code Online (Sandbox Code Playgroud)

我传递的所有这些标题都是正确的,如果您熟悉Mozilla,我已通过Google Chrome或Firebug插件中的inspect元素验证了相同内容.

现在的问题是,大部分时间我都在获取可读数据,但有时我确实得到了不可读的数据.

我使用eclipse调试并注意到wrappedEntity下的charset显示为"US-ASCII".我附上一个jpg作为参考在此输入图像描述

有人可以告诉我如何在我之前将字符集从ASCII更改为UTF-8 response = client.execute(httppost);.PS:正如你已经注意到我在标题中传递charset = utf-8并且我已经使用firebug和谷歌浏览器验证我传递了确切的标题.

请放大以更清楚地查看图像 …

java http httpresponse character-encoding apache-httpclient-4.x

5
推荐指数
2
解决办法
3万
查看次数

将低级 OpenSSL API 迁移到高级 OpenSSL API 所需的建议

我是 OpenSSL 的新手,目前正在开发一个依赖于 OpenSSL 的 C++ 项目。最近我开始使用一台安装了 openSSL 3.0 的机器,但无法构建项目,因为我收到如下所示的编译器错误(请注意,警告在项目中被视为错误)

error: 'MD5' is deprecated
    if (!MD5((uint8_t*)key.data(), key.size(), hashOutput)) {
         ^
/usr/local/Cellar/openssl@3/3.0.0_1/include/openssl/md5.h:52:1: note: 'MD5' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n,
^
/usr/local/Cellar/openssl@3/3.0.0_1/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                                ^
/usr/local/Cellar/openssl@3/3.0.0_1/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
#     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                   ^
1 error generated.
Run Code Online (Sandbox Code Playgroud)

经过一些调查,我发现这些 API 在 OpenSSL 3.0.0 中已被弃用,现在我有三个选择

  1. 忽略警告。它们只是警告。已弃用的函数仍然存在,您仍然可以使用它们。但请注意,它们可能会从 OpenSSL 的未来版本中删除。

  2. 抑制警告。有关如何执行此操作的信息,请参阅编译器文档。

  3. 删除对低级 API 的使用。在这种情况下,您需要重写代码以使用高级 API。

我选择了第三个选项,但即使在阅读了与 OpenSSL …

encryption hash openssl md5

4
推荐指数
1
解决办法
5747
查看次数

是否可以使用new运算符在C++ 11中初始化数组

大家好我想用这样的C++初始化一个数组

int array[10]={1,2,3,4,5,6,7,8,9,10};

但我正在使用新的运营商.

我知道我可以像下面那样做,然后迭代并分配值

shared_ptr<int[]> l (new int[7]);

但我真的很喜欢,如果有一些方法可以在新命令中初始化它

像这样的东西shared_ptr<int[]> l (new int[7] ={1,2,3,4,5,6,7}); 但遗憾的是这不是一个有效的语法.

同样在C++ 11标准中添加了一个新的STL容器阵列,有人可以告诉我是使用普通阵列还是STL阵列这是否可以实现

c++ arrays stl new-operator

3
推荐指数
1
解决办法
218
查看次数

如何使用viewpager和fragmentStatePager Adapter创建轮播

我是android的新手,我正在尝试在android中创建一个旋转木马.我的班级结构如下

public class PageViewActivity extends FragmentActivity {

    ViewPager pager;
    ...

    public void onCreate(Bundle savedInstanceState) {
       final ViewPager pager = (ViewPager) findViewById(R.id.pager);
       MyPageAdapter pageAdapter = new MyPageAdapter(getSupportFragmentManager(),getBaseContext());
       pager.setAdapter(pageAdapter);
    }
Run Code Online (Sandbox Code Playgroud)

...

public class MyPageAdapter extends FragmentStatePagerAdapter {

    @Override
    public ImageFragment getItem(int position) {
       ...
       return fragment;
    }

    @Override
    public int getCount() {
       return 10;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我的程序工作正常,我可以通过向左或向右滑动来获取10个可以访问的片段.但我希望将这10个片段显示为轮播,以便用户更好地了解当前位置的左侧或右侧有更多碎片.

有人可以告诉我我该怎么做.

我确实使用PageContainer找到了这个url ViewPager轮播,而不是使用FragmentPagerAdapter,但对于像我这样的初学者来说,没有太多信息.

android carousel infinite-carousel listview-adapter fragmentstatepageradapter

2
推荐指数
1
解决办法
7646
查看次数

需要澄清何时在 Yocto 中使用 bb/inc 文件

Yocto 是新手,但仍在熟悉它,因此可能是一个天真的问题,因此我对何时为包创建 inc 或 bb 文件进行了澄清。假设我有一个包 A 并且我的项目已经有一个配方 bb 文件A.bb。现在,如果我要为不同的项目 B 添加新的依赖项,那么我仍然不确定是否应该为项目 B 创建一个 inc 文件,而不是像这样B.inc将其包含在其中,还是应该为项目创建一个 bb 文件B 相反,让我们说and 而不是添加到 中。A.bbrequire B.incB.bbinherit BA.bb

我的另一个澄清是,如果我理解正确,你的包可以覆盖/附加内容到 bb 食谱,就像X.bb 创建 bbappend 文件一样X.bbappend覆盖/附加内容到 bb 配方,但对于 can inc 文件也是如此,以及您的包创建什么文件等。提前致谢。

我还需要询问如何在 .inc 文件中应用补丁,例如,如果我需要在我发现的内容中应用补丁,A.bb如果代码配方看起来像这样

SRC_URI = "git://foopackage;protocol=ssh;branch=mainline;/
           file://foo.patch \
           " 
Run Code Online (Sandbox Code Playgroud)

我需要做的就是在子文件夹 foo 中添加一个 foo.patch ,它将被应用,对于 inc 文件也是如此,即如果我有B.inc文件并且它是这样的

SRC_URI = "git://barpackage;protocol=ssh;branch=mainline;/
           file://bar.patch \
           "
Run Code Online (Sandbox Code Playgroud)

这是否意味着我需要在B.inc要应用补丁的文件夹中创建一个子文件夹栏。

yocto yocto-recipe

2
推荐指数
1
解决办法
738
查看次数