我有String这种格式的编码:
223175087923687075112234402528973166755
Run Code Online (Sandbox Code Playgroud)
解码后的字符串如下所示:
a7e5f55e1dbb48b799268e1a6d8618a3
Run Code Online (Sandbox Code Playgroud)
我需要将十进制转换为十六进制,但输入数量远大于int或long类型可以处理的数量,那么我该如何转换呢?
我想知道为什么我在以下代码中遇到以下异常:
public class AAA {
public static void main(String [] args) throws ParseException{
AAA a= new AAA();
}
public AAA() throws ParseException{
String str = "{\"a\":1,\"b\":\"2\",\"c\":\"3\"}";
JSONParser content_parser = new JSONParser();
Object objMessage_Content = content_parser.parse(str);
System.out.println(objMessage_Content);
JSONObject jsonObjectMessage_Content = (JSONObject) objMessage_Content;
System.out.println(jsonObjectMessage_Content);
String a = (String) jsonObjectMessage_Content.get("a");
String b = (String) jsonObjectMessage_Content.get("b");
String c = (String) jsonObjectMessage_Content.get("c");
String d = (String) jsonObjectMessage_Content.get("d");
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到这个例外:
Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String …Run Code Online (Sandbox Code Playgroud) 我在理解流时遇到了一些麻烦.我环顾四周,似乎无法找到与我的用例匹配的示例.
我有一个现有的嵌套for循环:
List<ObjectB> objectBs = new ArrayList<ObjectB>();
for (ObjectA objA: objectAList) {
for (ObjectB objB: objA.getObjectBList()) {
if (objB.getNumber() != 2) {
objectBs.add(objB);
}
}
}
Run Code Online (Sandbox Code Playgroud)
很多示例显示如何添加objB.getNumber()到列表但不是objB.
我怎样才能转换List成Optional<List>?
以下代码生成编译错误:
public Collection<Optional<UserMeal>> getAll() {
Comparator comparator = new SortedByDate();
List<UserMeal> mealList = new ArrayList<>(repository.values());
Collections.sort(mealList,comparator);
Collections.reverse(mealList);
**List<Optional<UserMeal>> resultList = Optional.of(mealList);**
return resultList;
}
Run Code Online (Sandbox Code Playgroud) 我想acts用一些枚举值填充数组.迭代时我想从控制台输入命令,但我的if语句找不到任何匹配,我总是得到输出"Incorrect".
我的代码:
Action[] acts = new Action[n];
for(int i = 0; i < n; i++) {
System.out.println("Enter act: ");
Scanner in1 = new Scanner(System.in);
String s = in1.next();
acts[i] = new Action();
if (s.equals("rotate_forw"))
acts[i].type = ActionType.RotF;
if (s.equals("rotate_back"))
acts[i].type = ActionType.RotB;
if (s.equals("shift_forw"))
acts[i].type = ActionType.ShiftF;
if (s.equals("shift_back"))
acts[i].type = ActionType.ShiftB;
else
System.out.println("Incorrect");
}
Run Code Online (Sandbox Code Playgroud) 以下是什么区别?
long var1 = 2147483647L;
long var2 = 2147483648;
Run Code Online (Sandbox Code Playgroud)
(或任何原始变量声明)是否有任何与L有关的性能问题?这是强制性的吗?
我正在将原始映射Stream到a Stream<Integer>,然后将元素收集到a List<Integer>.
为什么我必须将结果投射collect(Collectors.toList())到List<Integer>我的映射器.map(str -> ((String)str).length())- 已映射到Integer?
我的代码:
List list = Arrays.asList("test", "test2");
List<Integer> lengths = (List<Integer>) list.stream()
.map(str -> ((String)str).length())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
如果我不使用raw List,则无需强制转换:
List<String> list = Arrays.asList("test", "test2");
List<Integer> lengths = list.stream()
.map(str -> str.length())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud) package arrays;
import java.util.Scanner;
public class Raffle {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("Enter the number of partcipants ");
int no=scan.nextInt();
String participants[]=new String[no];
System.out.println("Please enter their names and check out the random winner");
for(int i=0;i<no;i++) {
participants[i]=scan.next();
}
int rand=(int)Math.random()*no;
System.out.println(rand);
System.out.println("The winner of the raffle is "+participants[rand]);
}
}
Run Code Online (Sandbox Code Playgroud)
我用过,Math.random()但是我在运行期间看到总是0索引位置给出结果而不是随机值.有什么建议?我正在吸氧.
我试图以相反的顺序打印一个数组.
这是代码:
import java.util.Scanner;
public class Main {
public static void main(String []argh) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
for (int j = n-1 ; j == 0; j--) {
System.out.print(arr[j] + " ");
}
in.close();
}
}
Run Code Online (Sandbox Code Playgroud)
在这段代码什么都没有发生,但是当我在第二个for循环变化的第二个条件从j == 0 到j >=0它的工作.我不明白为什么.在j==0,它不应该减少,j直到它变得相等0?
当我将a的所有内容添加ArrayList到另一个时ArrayList,另一个ArrayList包含对第一个元素的引用ArrayList.因此,当我更改Lists 中的任何一个元素时,另一个元素中的相应元素List也会发生变化.这显然意味着addAll分配对新的引用List.
参考代码:
ArrayList<StringBuffer> a = new ArrayList<>();
a.add(new StringBuffer("1"));
a.add(new StringBuffer("2"));
a.add(new StringBuffer("3"));
ArrayList<StringBuffer> b = new ArrayList<>();
b.addAll(a);
System.out.println("Arralists" + " before: ");
System.out.println("A arraylist" + a.toString());
System.out.println("B arraylist" + b.toString() + "\n\n");
a.set(0, a.get(0).replace(0, 1, String.valueOf(4)));
System.out.println("Arralists after " + "updating a: ");
System.out.println("A arraylist" + a.toString());
System.out.println("B arraylist" + b.toString() + "\n\n");
Run Code Online (Sandbox Code Playgroud)
对应日志:
Arralists before:
A arraylist[1, 2, 3]
B …Run Code Online (Sandbox Code Playgroud) java ×10
java-8 ×3
arrays ×2
java-stream ×2
arraylist ×1
collections ×1
core ×1
eclipse ×1
enums ×1
optional ×1