小编pro*_*mer的帖子

如何指定要包含在子字符串中的字母数(而不是空格)?

我正在尝试使用索引值打印子字符串.我需要在计数时排除空格,但它应该打印输出和空格.我想从主字符串中显示n个字母.空格将保持原样,但从下限到上限索引的字母数量应为n.我的代码是

public class Test {
    public static void main(String args[])
    {
        String Str=new String("Welcome to the class");
        System.out.println("\nReturn value is:");
        System.out.println(Str.substring(2,9));
    }
}
Run Code Online (Sandbox Code Playgroud)

输出: lcome t

在上面提到的代码中,它计算"欢迎"和"到"之间的空格.我不需要计算它们之间的空间.我的预期产量是收益

java string

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

集合何时允许重复?

所以这更像是一个"试图理解"的问题,而不是"我需要一个解决方案"的问题.对于作业,我们要求创建一个产品列表,其中包含a itemNumber和a price,但每个产品只有一个,因此没有相同的项目itemNumber.我想我可以创建一个集合,这将摆脱重复问题.但如果我添加producta1,4.99和productb1,2.99,则会添加两个产品.

这是否意味着,该集合确定这些产品是不同的b/c它们具有不同的价格,因此可以添加到集合中?

java set

4
推荐指数
2
解决办法
122
查看次数

为什么在括号中包含增量运算符没有区别?

为什么会这样,文档备份在哪里呢?

我的老师坚持认为"z =(y ++)"应首先执行y ++,然后将结果归因于z.

像这样:

int z, y = 10;
z = (y++);
printf("%d", z); //z = 10 or 11? and why?
Run Code Online (Sandbox Code Playgroud)

谢谢.

c increment parentheses

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

如何在Java中建立float和int值之间的双向一对一映射?

众所周知,float和int都需要4个字节来存储Java中的原始数组.因此,浮点值可以映射到具有相同内部32位表示的int值.

如何在float和int之间建立一个计算成本低廉的一对一映射?例如,映射可以将3.2345f映射到-67567575并将-67567575映射回接近3.2345f的值,并且可以覆盖大多数浮点值(可以忽略NaN或无穷大).映射的顺序或含义无关紧要.

(我需要这个的原因是为了解决我正在实现的jcuda内核函数的问题;使用其他方法对我的问题更麻烦.需要直接回答这个问题,而不是推荐其他方法等等.)

java floating-point int

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

为什么我不能在Java中的char数组中存储日语UTF-8字符?

我有一个字符串"1234567(Asics(アシックスワーキング))".它有unicode字符,有些是ASCII的一部分,有些则不是.java的作用是ASCII字符需要一个字节,其他unicode字符需要两个字节.

我的程序的某些部分无法以此格式处理字符串.所以我想将值编码为转义序列.

所以字符串

"1234567(Asics(アシックスワーキング))"

会映射到

"\ u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0028\u0041\u0073\u0069\u0063\u0073\u0020\u0028\u30a2\u30b7\u30c3\u30af\u30b9\u30ef\u30fc\u30ad\u30f3\u30b0\u0029\u0020\u0029"

.

我写了这个函数来做到这一点: -

public static String convertToEscaped(String utf8) throws java.lang.Exception
    {
    char[] str = utf8.toCharArray();
    StringBuilder unicodeStringBuilder = new StringBuilder();
    for(int i = 0; i < str.length; i++){
    char charValue = str[i];
    int intValue = (int) charValue;
    String hexValue = Integer.toHexString(intValue);
    unicodeStringBuilder.append("\\u");
    for (int length = hexValue.length(); length < 4; length++) {
        unicodeStringBuilder.append("0");
    }
    unicodeStringBuilder.append(hexValue);
    }
    return unicodeStringBuilder.toString();
    }
Run Code Online (Sandbox Code Playgroud)

这在我的程序之外工作正常但在我的程序中引起了问题.这发生在线路上char[] str = utf8.toCharArray(); 某种程度上我失去了我的日本unicode字符,这发生了,因为t将这些字符分成char数组中的2.

所以我决定byte []改用它.

    public static String convertToEscaped(String …
Run Code Online (Sandbox Code Playgroud)

java string unicode utf-8

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

如何通过关闭JFrame直接关闭JOptionPane?

我是新来学习javax.swing并且有疑问.

我有一个JFrame,其defaultCloseOperation设置为EXIT_ON_CLOSE.我有另一种成分-一JOptionPane- JFrame.我想要发生的是,即使焦点在JOptionPane消息对话框上,我也希望程序在单击窗口x上的按钮时终止JFrame.

所以,确切地说,我希望JFrame在不关闭JOptionPane消息对话框的情况下引起焦点,以便我可以关闭JFrame窗口,从而使程序终止.

这是我的代码:

import javax.swing.*;

public class JJSS {
    public JFrame jf;

    public JJSS(){
        jf = new JFrame();

        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setSize(400, 400);
        jf.setVisible(true);
    }

    public void runMethod(){
        String str = JOptionPane.showInputDialog(jf, "Enter something...");
        str = String.valueOf(new StringBuffer(str).reverse());
        JOptionPane.showMessageDialog(jf, "Reversed: "+str, "Output", JOptionPane.PLAIN_MESSAGE);
    }

    public static void main(String[] args){
        new JJSS().runMethod();
        System.exit(0);
    }

}
Run Code Online (Sandbox Code Playgroud)

使用当前代码,当我单击窗口的关闭按钮( …

java swing jframe joptionpane

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

为什么使用循环计算pi不能正常工作?

我们得到了一个赋值,我们必须使用公式计算pi的值pi/4=1-1/3+1/5-1/7+1/9-1/11...(使用100术语),但由于某种原因它似乎没有运行while循环.我们是没有编写代码经验的学生,而且刚刚开始.

double pi = 1;
int count = 0;
int n = 3;

while (count < 100) {
    if ((count&1) == 0) {  
        pi = pi - 1 / n;
    } else {
        pi = pi + 1 / n;
    }
    n = n + 2;
    count++;
}
out.print(pi*4);   //why is it printing out pi=1?????
Run Code Online (Sandbox Code Playgroud)

java

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

最终关键字是Java中的类型限定符吗?

在Java中,当我使用此语句时:

final int nr = 10;
Run Code Online (Sandbox Code Playgroud)

我一直宣称不变.

在其他语言的书籍中,例如C#或C++,我们可以使用const.

该关键字const被称为类型限定符,因为它是一个修改和细化变量属性的属性.

因此,类似的语句const int nr = 10;是一个常量整数,因为"const qualified int".

但是,JLS从未被引用final为类型限定符,但通常表示为修饰符(类型修饰符?).

但修饰者是什么?变量?那种?

所以,最后,我的问题是:最终是一个类型限定符?

java keyword

0
推荐指数
1
解决办法
259
查看次数

无法使用指针对没有临时变量的数组进行排序

该算法交换两个整数的值xy不使用tmp的变量是

x = x + y;
y = x - y;
x = x - y;
Run Code Online (Sandbox Code Playgroud)

我编写了一个代码来通过将数组传递给方法来对数组进行排序.该方法接受指针中的数组*ptr.因此,arr[0], arr[1],...可以使用指针变量as来访问数组的元素*(ptr + 0), *(ptr + 1),....但是,我面临的问题是,当我尝试通过使用指针引用内存位置进行排序时交换数组的值,而不使用临时变量,数组不会按照我期望的方式进行排序.相反,我看到一些随机元素被插入到数组中.

这是我的数组排序代码(选择排序 - 排序算法是正确的):

void sort(int *arr, int n){
    int i,j,m;
    for(i=0; i<n-1; i++){
        m = i;
        for(j=i+1; j<n; j++){
            if(arr[j] < arr[m])
                m = j;
        }
        //swapping arr[i] and arr[m]
        *(arr + i) = *(arr + i) + *(arr + m);
        *(arr + …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers

0
推荐指数
1
解决办法
193
查看次数

如何遍历锯齿状数组中的每个元素?

我有一个二维数组,所以是一个数组数组。数组的数组不具有相同的长度。这里有一个例子:

double[][] multi = new double[][] { 
  { 10, 20, 30, 40, 50 }, 
  { 1.1, 2.2, 3.3, 4.4 }, 
  { 1.2, 3.2 },
  { 1, 2, 3, 4, 5, 6, 7, 8, 9 } 
};
Run Code Online (Sandbox Code Playgroud)

如何遍历列?(我爱:10 1.1 1.2 1

java arrays for-loop

-6
推荐指数
1
解决办法
2613
查看次数